﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class УправлениеВзаиморасчетами
	{
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ПРОВЕРКИ ПРИ ПРОВЕДЕНИИ ПРАВИЛЬНОСТИ ЗАПОЛНЕНИЯ ДОКУМЕНТОВ
		// Проверяет, что организация в документе совпадает с организацией, указанной в договоре взаиморасчетов.
		//  при несовпадении устанавливается флаг отказа в проведении.
		//
		// Параметры:
		//  Организация           - ссылка на организацию, выбранную в документе,
		//  ДоговорКонтрагента - ссылка на договор, выбранный в документе,
		//  ДоговорОрганизация    - ссылка на Организацию, выбранную в договоре,
		//  Отказ                 - флаг отказа в проведении.
		//  Заголовок             - строка, заголовок сообщения об ошибке проведения.
		//

		public void ПроверитьСоответствиеОрганизацииДоговоруВзаиморасчетов(/*Организация, ДоговорКонтрагента, 
	                                                  ДоговорОрганизация, Отказ, Заголовок*/)
		{
			/*// Если не заполнен договор или организация, то не ругаемся.
*/
			if(true/*ЗначениеЗаполнено(Организация) 
	   И ЗначениеЗаполнено(ДоговорКонтрагента)
	   И Организация <> ДоговорОрганизация*/)
			{
				//ОбщегоНазначения.СообщитьОбОшибке("Выбран договор контрагента, не соответствующий организации, указанной в документе!", Отказ, Заголовок);
			}
		}
		// ПроверитьСоответствиеОрганизацииДоговоруВзаиморасчетов()
		// Для документов, у которых договор контрагента находится в табличной части
		// что организация в документе совпадает с организацией, указанной в договоре взаиморасчетов.
		//
		// Параметры:
		//  ДокументОбъект    - объект проводимого документа,
		//  ИмяТабличнойЧасти - табличная часть документа,
		//  ТаблицаЗначений   - таблица значений, содержащая данные табличной части,
		//  Отказ             - флаг отказа в проведении,
		//  Заголовок         - строка, заголовок сообщения об ошибке проведения.
		//

		public void ПроверитьОрганизациюДоговораВзаиморасчетовВТабличнойЧасти(/*ДокументОбъект, ИмяТабличнойЧасти, ТаблицаЗначений, 
                                                    Отказ, Заголовок*/)
		{
			//ПредставлениеТабличнойЧасти = ДокументОбъект.Метаданные().ТабличныеЧасти[ИмяТабличнойЧасти].Представление();
			/*// Цикл по строкам таблицы значений.
*/
		}
		// ПроверитьОрганизациюДоговораВзаиморасчетовВТабличнойЧасти()
		// Для документов, у которых договор контрагента и сделка находятся в табличной части
		// (например, "Авансовый отчет", "Корректировка долга") проверяет заполнена ли сделка, если
		// в договоре взаиморасчетов установлено ведение взаиморасчетов по заказам.
		//
		// Параметры:
		//  ДокументОбъект    - объект проводимого документа,
		//  ИмяТабличнойЧасти - табличная часть документа,
		//  ТаблицаЗначений   - таблица значений, содержащая данные табличной части и признак услуги
		//  Отказ             - флаг отказа в проведении,
		//  Заголовок         - строка, заголовок сообщения об ошибке проведения.
		//

		public void ПроверитьСделкуВТабличнойЧасти(/*ДокументОбъект, ИмяТабличнойЧасти, ТаблицаЗначений, 
                                                    Отказ, Заголовок*/)
		{
			//ПредставлениеТабличнойЧасти = ДокументОбъект.Метаданные().ТабличныеЧасти[ИмяТабличнойЧасти].Представление();
			/*// Цикл по строкам таблицы значений.
*/
		}
		// ПроверитьСделкуВТабличнойЧасти()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ
		// Вычисляет текущий долг контрагента по заданному договору и сделке в валюте взаиморасчетов
		// по данному договору
		//
		// Параметры:
		//  Договор - ссылка на элемент справочника, определяет договор контрагента, по которому надо получить долг,
		//  Сделка  - ссылка на документ, определяет сделку (заказ, накладную, платежный документ) по которому надо получить долг.
		//  СсылкаДокумент           - ссылка на документ, для которого рассчитывается долг.
		//
		// Возвращаемое значение:
		//  Число -  текущий размер долга, если удалось вычислить текущий долг, иначе - 0.
		//

		public object ТекущийДолг(/*Договор, Сделка = Неопределено, СсылкаДокумент*/)
		{
			//ТекущийДолг = 0;
			//СтруктураОтбора = Новый Структура();
			/*// для отбора остатков взаиморасчетов
*/
			//СтруктураОтбора.Вставить("ДоговорКонтрагента", Договор);
			//СтруктураОтбора.Вставить("Контрагент", Договор.Владелец);
			if(true/*ЗначениеЗаполнено(Договор)*/)
			{
				if(true/*Договор.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом*/)
				{
					/*ТекущийДолг = РегистрыНакопления.ВзаиморасчетыСКонтрагентами.Остатки(,
						СтруктураОтбора,"ДоговорКонтрагента","СуммаВзаиморасчетов").Итог("СуммаВзаиморасчетов");*/
				}
			}
			return null;
		}
		// ТекущийДолг()
		// Функция возвращает список значений видов договоров взаиморасчетов для поставщика.
		//
		// Параметры
		//  НЕТ
		//
		// Возвращаемое значение:
		//   СписокЗначений
		//

		public object ПолучитьСписокВидовДоговоровВзаиморасчетовДляПоставщика(/**/)
		{
			//СписокПеречисления = Новый СписокЗначений;
			//СписокПеречисления.Добавить(Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком);
			//СписокПеречисления.Добавить(Перечисления.ВидыДоговоровКонтрагентов.СКомитентом);
			//СписокПеречисления.Добавить(Перечисления.ВидыДоговоровКонтрагентов.Прочее);
			return null;
		}
		// ПолучитьСписокВидовДоговоровВзаиморасчетовДляПоставщика()
		// Функция возвращает список значений видов договоров взяиморасчетов для покупателя.
		//
		// Параметры
		//  НЕТ
		//
		// Возвращаемое значение:
		//   СписокЗначений
		//

		public object ПолучитьСписокВидовДоговоровВзаиморасчетовДляПокупателя(/**/)
		{
			//СписокПеречисления = Новый СписокЗначений;
			//СписокПеречисления.Добавить(Перечисления.ВидыДоговоровКонтрагентов.СПокупателем);
			//СписокПеречисления.Добавить(Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером);
			//СписокПеречисления.Добавить(Перечисления.ВидыДоговоровКонтрагентов.Прочее);
			return null;
		}
		// ПолучитьСписокВидовДоговоровВзаиморасчетовДляПокупателя()
		// Функция возвращает список значений видов договоров взаиморасчетов когда
		// контрагент не является ни поставщиком не покупателем.
		//
		// Параметры
		//  НЕТ
		//
		// Возвращаемое значение:
		//   СписокЗначений
		//

		public object ПолучитьСписокВидовДоговоровВзаиморасчетовПрочее(/**/)
		{
			//СписокПеречисления = Новый СписокЗначений;
			//СписокПеречисления.Добавить(Перечисления.ВидыДоговоровКонтрагентов.Прочее);
			return null;
		}
		// ПолучитьСписокВидовДоговоровВзаиморасчетовПрочее()
		// Определяет сделку, по которой надо провести документ
		//
		// Параметры:
		//  Объект          		- объект (документ или строка табличной части)
		//  Параметры 				- выборка из результата запроса, структура. Обязательно должна содержать поле (ключ) ВедениеВзаиморасчетов
		//  ИмяРеквизитаСделка      - необязательный параметр, имя реквизита "сделка"
		//  Расчеты                 - флаг, показывающий, что сделка определяется для записи в регистр РасчетыСКонтрагентами
		// 							(при этом сделка прописывается, даже если взаиморасчеты ведутся по договору в целом)
		//  ВозвратнаяТара          - флаг, показывающий, что определяется сделка для формирования движений по возвратной таре
		//							регистров "Товары полученные" и "Товары переданные".
		//							(в этом случае при ведении взаиморасчетов по расчетным документам сделка не прописывается)
		//
		// Возвращаемое значение:
		//  Ссылка на документ или Неопределено, т.е. значение, которое надо записать в измерение Сделка регистра.
		//

		public object ОпределитьСделку(/*Объект, Параметры, ИмяРеквизитаСделка = "Сделка", Расчеты = Ложь, ВозвратнаяТара = Ложь*/)
		{
			/*// Возвращаемое значение.
*/
			//Сделка = Неопределено;
			if(true/*Параметры.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам
		  ИЛИ Параметры.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоСчетам 
		  ИЛИ (Расчеты И ЗначениеЗаполнено(Объект[ИмяРеквизитаСделка]))*/)
			{
				//Сделка = Объект[ИмяРеквизитаСделка];
			}
			return null;
		}
		// ОпределитьСделку()
		// Дополняет дерево полей запроса по шапке реквизитами договора, нужными для контроля остатков взаиморасчетов.
		//
		// Параметры
		//  ДеревоПолейЗапросаПоШапке - дерево, дополняемое дерево полей запроса,
		//  РежимПроведения           - режим проведения документа.
		//

		public void ДополнитьДеревоПолейЗапросаПоШапкеДляКонтроляВзаиморасчетовУпр(/*ДеревоПолейЗапросаПоШапке, РежимПроведения*/)
		{
			if(true/*РежимПроведения = РежимПроведенияДокумента.Оперативный*/)
			{
				//УправлениеЗапасами.ДобавитьСтрокуВДеревоПолейЗапросаПоШапке(ДеревоПолейЗапросаПоШапке, "ДоговорКонтрагента"  , "ВедениеВзаиморасчетов"                       , "ВедениеВзаиморасчетов");
				//УправлениеЗапасами.ДобавитьСтрокуВДеревоПолейЗапросаПоШапке(ДеревоПолейЗапросаПоШапке, "ДоговорКонтрагента"  , "ВалютаВзаиморасчетов"                        , "ВалютаВзаиморасчетов");
				//УправлениеЗапасами.ДобавитьСтрокуВДеревоПолейЗапросаПоШапке(ДеревоПолейЗапросаПоШапке, "ДоговорКонтрагента"  , "КонтролироватьСуммуЗадолженности" , "КонтролироватьСуммуЗадолженности");
				//УправлениеЗапасами.ДобавитьСтрокуВДеревоПолейЗапросаПоШапке(ДеревоПолейЗапросаПоШапке, "ДоговорКонтрагента"  , "ДопустимаяСуммаЗадолженности" , "ДопустимаяСуммаЗадолженности");
				//УправлениеЗапасами.ДобавитьСтрокуВДеревоПолейЗапросаПоШапке(ДеревоПолейЗапросаПоШапке, "ДоговорКонтрагента"  , "ПроцентПредоплаты" , "ПроцентПредоплаты");
				//УправлениеЗапасами.ДобавитьСтрокуВДеревоПолейЗапросаПоШапке(ДеревоПолейЗапросаПоШапке, "ДоговорКонтрагента"  , "КонтролироватьЧислоДнейЗадолженности" , "КонтролироватьЧислоДнейЗадолженности");
				//УправлениеЗапасами.ДобавитьСтрокуВДеревоПолейЗапросаПоШапке(ДеревоПолейЗапросаПоШапке, "ДоговорКонтрагента"  , "ДопустимоеЧислоДнейЗадолженности" , "ДопустимоеЧислоДнейЗадолженности");
			}
		}
		// ДополнитьДеревоПолейЗапросаПоШапкеДляКонтроляВзаиморасчетовУпр()
		// Процедура выбора расчетного документа.
		// Используется в документах подсистемы НДС.
		//

		public void ВыборРасчетногоДокумента(/*СтруктураПараметров,Элемент,ТипыДокументов*/)
		{
			//ФормаВыбора = Документы.ДокументРасчетовСКонтрагентом.ПолучитьФорму("ФормаВыбора",Элемент);
			//ФормаВыбора.Организация        = СтруктураПараметров.Организация;
			//ФормаВыбора.Контрагент         = СтруктураПараметров.Контрагент;
			//ФормаВыбора.ДоговорКонтрагента = СтруктураПараметров.ДоговорКонтрагента;
			//ФормаВыбора.КонПериода         = СтруктураПараметров.КонецПериода;
			//ФормаВыбора.Счет               = СтруктураПараметров.СчетДляОпределенияОстатков;
			//ФормаВыбора.ОстаткиОбороты     = СтруктураПараметров.СторонаСчета;
			//ФормаВыбора.РежимВыбора        = Истина;
			//ФормаВыбора.мТипыДокументов    = ТипыДокументов;
			if(true/*СтруктураПараметров.Свойство("НачалоПериода")*/)
			{
				//ФормаВыбора.НачПериода         = СтруктураПараметров.НачалоПериода;
				//ФормаВыбора.мПереданИнтервал = Истина;
			}
			//ФормаВыбора.Открыть();
		}
		// ВыборРасчетногоДокумента()
		// Преобразует значение системного перечисления ВидСравнения в текст для запроса
		//
		// Параметры
		//  СтруктураОтбора		–	<Структура>
		//							Структура параметров отбора. Если есть элемент структуры с ключом "ВидСравненияОтбора",
		//							значение этого элемента преобразуется в текст для запроса.
		//							Необязательный элемент, по умолчанию ВидСравнения.Равно
		//
		// Возвращаемое значение:
		//   <Строка> – текст сравнения для запроса
		//

		public object ПолучитьВидСравненияДляЗапроса(/*СтруктураОтбора*/)
		{
			if(true/*НЕ СтруктураОтбора.Свойство("ВидСравненияОтбора")*/)
			{
				//Возврат "=";
			}
			return null;
		}
		// ПолучитьВидСравненияДляЗапроса()
		// Получает договор контрагента по умолчанию с учетом условий отбора. Возвращается основной договор или единственный или пустая ссылка
		//
		// Параметры
		//  ВладелецДоговора	–	<СправочникСсылка.Контрагенты>
		//							Контрагент, договор которого нужно получить
		//  ОрганизацияДоговора	–	<СправочникСсылка.Организации>
		//							Организация, договор которой нужно получить
		//  СписокВидовДоговора	–	<Массив> или <СписокЗначений>, состоящий из значений типа <ПеречислениеСсылка.ВидыДоговоровКонтрагентов>
		//							Нужные виды договора
		//  СтруктураПараметров	–	<Структура>
		//							Структура дополнительных параметров отбора договоров по реквизитам.
		//							Элементы структуры СтруктураПараметров:
		//							Ключ - имя реквизита договора, Значение - еще одна структура
		//
		//							Элементы структуры, которая находится в Значение:
		//							Ключ - "ЗначениеОтбора", Значение - значение реквизита договора для отбора. Обязательный элемент.
		//							Ключ - "ВидСравненияОтбора", Значение - <ВидСравнения>. Необязательный элемент, по умолчанию ВидСравнения.Равно
		//
		// Возвращаемое значение:
		//   <СправочникСсылка.ДоговорыКонтрагентов> – найденный счет или пустая ссылка
		//

		public object УстановитьДоговорКонтрагента(/*ДоговорКонтрагента,ВладелецДоговора, ОрганизацияДоговора, СписокВидовДоговора=неопределено, СтруктураПараметров = Неопределено*/)
		{
			//НовыйДоговор = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
			//Запрос = Новый Запрос;
			/*ТекстЗапроса = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 2
	|	ДоговорыКонтрагентов.Ссылка,
	|	ВЫБОР
	|		КОГДА СправочникВладелец.Ссылка ЕСТЬ НЕ NULL 
	|			ТОГДА 1
	|		ИНАЧЕ 2
	|	КОНЕЦ КАК Приоритет
	|ИЗ
	|	Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК СправочникВладелец
	|		ПО ДоговорыКонтрагентов.Владелец = СправочникВладелец.Ссылка
	|			И ДоговорыКонтрагентов.Ссылка = СправочникВладелец.ОсновнойДоговорКонтрагента
	|ГДЕ
	|	&ТекстФильтра
	|
	|УПОРЯДОЧИТЬ ПО
	|	Приоритет";*/
			//Запрос.УстановитьПараметр("ВладелецДоговора", ВладелецДоговора);
			//Запрос.УстановитьПараметр("ОрганизацияДоговора", ОрганизацияДоговора);
			//Запрос.УстановитьПараметр("СписокВидовДоговора", СписокВидовДоговора);
			/*ТекстФильтра = "
	|	ДоговорыКонтрагентов.Владелец = &ВладелецДоговора
	|	И ДоговорыКонтрагентов.Организация = &ОрганизацияДоговора
	|	И ДоговорыКонтрагентов.ПометкаУдаления = ЛОЖЬ"
	+?(СписокВидовДоговора<>неопределено,"
	|	И ДоговорыКонтрагентов.ВидДоговора В (&СписокВидовДоговора)","");*/
			if(true/*ТипЗнч(СтруктураПараметров) = Тип("Структура")*/)
			{
			}
			//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстФильтра", ТекстФильтра);
			//Запрос.Текст = ТекстЗапроса;
			//Результат = Запрос.Выполнить();
			if(true/*Не Результат.Пустой()*/)
			{
				//Выборка = Результат.Выбрать();
				//Выборка.Следующий();
				//НайденОсновнойДоговор = Выборка.Приоритет = 1;
				//НайденОдинДоговор     = Выборка.Количество() = 1;
				if(true/*НайденОсновнойДоговор ИЛИ НайденОдинДоговор*/)
				{
					//НовыйДоговор = Выборка.Ссылка;
				}
			}
			if(true/*(ДоговорКонтрагента.Владелец<>ВладелецДоговора ИЛИ ДоговорКонтрагента.Организация<>ОрганизацияДоговора) ИЛИ (не ЗначениеЗаполнено(ДоговорКонтрагента))*/)
			{
				//ДоговорКонтрагента = НовыйДоговор;
			}
			return null;
		}
		// ПолучитьДоговорКонтрагента()
		/////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ ОБСЛУЖИВАНИЯ ВЕДЕНИЯ ВЗАИМОРАСЧЕТОВ ПО ДОКУМЕНТАМ
		// РАСЧЕТОВ С КОНТРАГЕНТАМИ
		// Процедура формирует структуру с итоговыми данными взаиморасчетов по документу

		public object ПолучитьСтруктуруВзаиморасчетовПоДокументу(/*ДокументОбъект, СуммаВзаиморасчетовПоДокументу*/)
		{
			//СтруктураВзаиморасчетов = Новый Структура;
			//ТаблицаДокументов = ДокументОбъект.ДокументыРасчетовСКонтрагентом.Выгрузить();
			//СтруктураВзаиморасчетов.Вставить("ПоДокументуВал", СуммаВзаиморасчетовПоДокументу);
			//СтруктураВзаиморасчетов.Вставить("ПредоплатаВал", ТаблицаДокументов.Итог("СуммаВзаиморасчетов"));
			//СтруктураВзаиморасчетов.Вставить("ПредоплатаРегл", ТаблицаДокументов.Итог("СуммаРегл"));
			//ОстатокВал = СуммаВзаиморасчетовПоДокументу - СтруктураВзаиморасчетов.ПредоплатаВал;
			//СтруктураВзаиморасчетов.Вставить("ОстатокВал", ОстатокВал);
			//ОстатокРегл = ?(ДокументОбъект.КратностьВзаиморасчетов = 0, 0, ОстатокВал * ДокументОбъект.КурсВзаиморасчетов / ДокументОбъект.КратностьВзаиморасчетов);
			//СтруктураВзаиморасчетов.Вставить("ОстатокРегл", ОстатокРегл);
			//СтруктураВзаиморасчетов.Вставить("ПоДокументуРегл", ОстатокРегл + СтруктураВзаиморасчетов.ПредоплатаРегл);
			return null;
		}

		public object СформироватьТаблицуСделок(/*ДокументОбъект, СтруктураПараметров*/)
		{
			if(true/*СтруктураПараметров.Свойство("СуммаВключаетНДС")*/)
			{
				//СуммаВключаетНДС = СтруктураПараметров.СуммаВключаетНДС;
			}
			//УчетАгентскогоНДС = СтруктураПараметров.Свойство("УчетАгентскогоНДС") И СтруктураПараметров.УчетАгентскогоНДС;
			//УчитыватьНДС = (СуммаВключаетНДС И УчетАгентскогоНДС) ИЛИ (НЕ СуммаВключаетНДС И НЕ УчетАгентскогоНДС);
			if(true/*УчитыватьНДС*/)
			{
				//КолонкиСуммирования = "Сумма, СуммаНДС";
			}
			//МогутБытьЗаказыВТабличныхЧастях = СтруктураПараметров.ВедениеВзаиморасчетов <> Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоСчетам;
			if(true/*МогутБытьЗаказыВТабличныхЧастях 
		И СтруктураПараметров.Свойство("ЕстьЗаказыВТабличныхЧастях") И СтруктураПараметров.ЕстьЗаказыВТабличныхЧастях = Истина*/)
			{
				//ЕстьЗаказыВТабличныхЧастях = Истина;
				//ИмяКолонкиСделка = СтруктураПараметров.ИмяЗаказаВТабличныхЧастях;
			}
			//ТаблицаСделок = Новый ТаблицаЗначений;
			//ТаблицаСделок.Колонки.Добавить(ИмяКолонкиСделка);
			//ТаблицаСделок.Колонки.Добавить("Сумма");
			if(true/*УчитыватьНДС*/)
			{
				//ТаблицаСделок.Колонки.Добавить("СуммаНДС");
			}
			if(true/*НЕ СтруктураПараметров.Свойство("ИмяСделкиВШапкеДокумента")*/)
			{
				//ИмяСделкиВШапкеДокумента = "Сделка";
			}
			if(true/*ЕстьЗаказыВТабличныхЧастях*/)
			{
			}
			/*// В шапке документа "Поступление доп. расходов" может быть указана дополнительная сумма,
*/
			/*// которую надо провести по взаиморасчетам
*/
			if(true/*ТипЗнч(ДокументОбъект.Ссылка) = Тип("ДокументСсылка.ПоступлениеДопРасходов") И ДокументОбъект.Сумма <> 0*/)
			{
				//СтрокаЗаказа = ТаблицаСделок.Добавить();
				//СтрокаЗаказа[ИмяКолонкиСделка] = ДокументОбъект[ИмяСделкиВШапкеДокумента];
				//СтрокаЗаказа.Сумма = ДокументОбъект.Сумма;
				if(true/*УчитыватьНДС*/)
				{
					//СтрокаЗаказа.СуммаНДС = ДокументОбъект.СуммаНДС;
				}
			}
			//ТаблицаСделок.Свернуть(ИмяКолонкиСделка, КолонкиСуммирования);
			//ТаблицаСделок.Колонки[ИмяКолонкиСделка].Имя = "Сделка";
			//ТаблицаСделок.Колонки.Добавить("СуммаВзаиморасчетов");
			return null;
		}
		// Процедура выполняет заполение ТЧ "Документы расчетов с контрагентом"
		// Параметры:
		//	ДокументОбъект
		//	СтруктураПараметров - структура, включающая следующие параметры
		//			- СтруктураТабличныхЧастей - структура, ключами которой являются имена табличных частей;
		//										в качестве значений структуры могут передаваться
		//										таблицы значений, содержащие данные самих табличных частей
		//
		//			- СуммаВключаетНДС         - признак включения НДС в сумму
		//			- ВалютаВзаиморасчетов     - валюта взаиморасчетов (ссылка на элемент справочника "Валюты")
		//			- СуммаВзаиморасчетов
		//			- ВалютаДокумента
		//			- КурсВзаиморасчетов
		//			- КратностьВзаиморасчетов
		//			- ДоговорКонтрагента
		//			- ОтражатьВРегламентированномУчете - признак отражения документа в регламентированном учете
		//			- РасчетыВУсловныхЕдиницах         - признак ведения взаиморасчетов в условных единицах
		//			- ВедениеВзаиморасчетов
		//			- Дата - дата документа
		//	Направление - направление взаиморасчетов: "поступление" или "реализация"
		//	УчетЗаказов - учет заказов при ведении взаиморасчетов по договору в целом:
		//					- "только по заказу"      - если указан заказ, то заполнение происходит только документами, связанными с этим заказом
		//                  - "по заказу и свободные" - заполняется сначала документами по заказу, а затем документами, в которых не был указан заказ
		//					- "приоритет заказа"      - заполняется сначала документами по заказу, затем документами в которых заказ не был указан, затем документами по другим заказам
		//					- "не учитывать"          - не учитываются заказы
		//	УчетСуммыДокумента - учитывать сумму документа при заполнении или заполнять всеми остатками, предоставив пользователю право выбора
		//

		public void ЗаполнитьТаблицуДокументовРасчетовСКонтрагентом(/*ДокументОбъект, СтруктураПараметров*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(СтруктураПараметров.ДоговорКонтрагента) 
		ИЛИ НЕ СтруктураПараметров.ВестиПоДокументамРасчетовСКонтрагентом*/)
			{
				//ДокументОбъект.ДокументыРасчетовСКонтрагентом.Очистить();
			}
			//СделкаВШапкеДокумента = НЕ СтруктураПараметров.Свойство("ТаблицаСделок");
			if(true/*СделкаВШапкеДокумента*/)
			{
				//ТаблицаСделок = Новый ТаблицаЗначений;
				//ТаблицаСделок.Колонки.Добавить("Сделка");
				//ТаблицаСделок.Колонки.Добавить("СуммаВзаиморасчетов", Новый ОписаниеТипов("Число"));
				//СтрокаСделки = ТаблицаСделок.Добавить();
				if(true/*НЕ ЗначениеЗаполнено(СтруктураПараметров.Сделка) 
			ИЛИ СтруктураПараметров.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом*/)
				{
					//СтрокаСделки.Сделка = Неопределено;
				}
				//СтрокаСделки.СуммаВзаиморасчетов = СтруктураПараметров.СуммаВзаиморасчетов;
			}
			//Направление        = СтруктураПараметров.Направление;
			//ВидЗаполнения      = СтруктураПараметров.ВидЗаполнения;
			//УчетСуммыДокумента = СтруктураПараметров.УчетСуммыДокумента;
			/*// Выбираем из оперативных итогов все остатки по документам с датой оплаты меньше даты поступления (реализации)
*/
			//Запрос = Новый Запрос;
			/*Запрос.Текст = 
	"ВЫБРАТЬ
	|	ВзаиморасчетыПоДокументамОстатки.Сделка КАК Сделка,
	|	ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
	|	ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток * &Множитель КАК СуммаВзаиморасчетов,
	|	ВзаиморасчетыПоДокументамОстатки.СуммаРеглОстаток * &Множитель КАК СуммаРегл,
	|	ВЫБОР
	|		КОГДА &ЭтоВозврат
	|			ТОГДА &ПустаяДата
	|		КОГДА (НЕ &ОпределениеВремениПроведенияПлатежногоДокументаПоКонцуДняРегистрацииДокумента)
	|				И НАЧАЛОПЕРИОДА(ЕСТЬNULL(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.ДатаОплаты, ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата), ДЕНЬ) = НАЧАЛОПЕРИОДА(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ)
	|			ТОГДА ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата
	|		ИНАЧЕ КОНЕЦПЕРИОДА(ЕСТЬNULL(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.ДатаОплаты, ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата), ДЕНЬ)
	|	КОНЕЦ КАК ДатаОплаты,
	|	ВЫБОР
	|		КОГДА ВзаиморасчетыПоДокументамОстатки.Сделка В (&СделкиДокумента)
	|			ТОГДА 1
	|		КОГДА ВзаиморасчетыПоДокументамОстатки.Сделка = НЕОПРЕДЕЛЕНО
	|			ТОГДА 2
	|		ИНАЧЕ 3
	|	КОНЕЦ КАК Приоритет
	|ИЗ
	|	РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(
	|		,
	|		ДоговорКонтрагента = &ДоговорКонтрагента
	|		    И ВидРасчетовСКонтрагентом = &ВидРасчетовСКонтрагентом
	|		    И УпрУчет = &УпрУчет) КАК ВзаиморасчетыПоДокументамОстатки
	|ГДЕ
	|	ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток * &Множитель > 0
	|	И ВЫБОР
	|			КОГДА &ЭтоВозврат
	|				ТОГДА ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата
	|			КОГДА (НЕ &ОпределениеВремениПроведенияПлатежногоДокументаПоКонцуДняРегистрацииДокумента)
	|					И НАЧАЛОПЕРИОДА(ЕСТЬNULL(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.ДатаОплаты, ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата), ДЕНЬ) = НАЧАЛОПЕРИОДА(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ)
	|				ТОГДА ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата
	|			ИНАЧЕ КОНЕЦПЕРИОДА(ЕСТЬNULL(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.ДатаОплаты, ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата), ДЕНЬ)
	|		КОНЕЦ < &Дата
	|	И ВЫБОР
	|			КОГДА ВзаиморасчетыПоДокументамОстатки.Сделка В (&СделкиДокумента)
	|				ТОГДА 1
	|			КОГДА ВзаиморасчетыПоДокументамОстатки.Сделка = НЕОПРЕДЕЛЕНО
	|				ТОГДА 2
	|			ИНАЧЕ 3
	|		КОНЕЦ <= &МаксПриоритет
	|
	|УПОРЯДОЧИТЬ ПО
	|	Приоритет,
	|	Сделка,
	|	ДокументРасчетовСКонтрагентом
	|АВТОУПОРЯДОЧИВАНИЕ";*/
			if(true/*ДокументОбъект.ЭтоНовый()*/)
			{
				//Запрос.УстановитьПараметр("Дата", КонецДня(СтруктураПараметров.Дата));
			}
			//Запрос.УстановитьПараметр("ДоговорКонтрагента", СтруктураПараметров.ДоговорКонтрагента);
			if(true/*СтруктураПараметров.Свойство("ОтражатьВУправленческомУчете")*/)
			{
				//Запрос.УстановитьПараметр("УпрУчет", СтруктураПараметров.ОтражатьВУправленческомУчете);
			}
			//СделкиДокумента = ОбщегоНазначения.УдалитьПовторяющиесяЭлементыМассива(ТаблицаСделок.ВыгрузитьКолонку("Сделка"));
			//Запрос.УстановитьПараметр("СделкиДокумента", СделкиДокумента);
			/*ВидРасчетовСКонтрагентом = ?(Направление = "Поступление", Перечисления.ВидыРасчетовСКонтрагентами.ПоПриобретению,
	                             Перечисления.ВидыРасчетовСКонтрагентами.ПоРеализации);*/
			//Запрос.УстановитьПараметр("ВидРасчетовСКонтрагентом", ВидРасчетовСКонтрагентом);
			if(true/*Направление = "Поступление"*/)
			{
				//МножительНаправления = 1;
			}
			if(true/*СтруктураПараметров.Свойство("ЭтоВозврат")*/)
			{
				//МножительВозврата = ?(СтруктураПараметров.ЭтоВозврат = Истина, -1, 1);
				//Запрос.УстановитьПараметр("ЭтоВозврат", ?(ТипЗнч(СтруктураПараметров.ЭтоВозврат) = Тип("Булево"), СтруктураПараметров.ЭтоВозврат, Ложь));
			}
			//Множитель = МножительНаправления * МножительВозврата;
			//Запрос.УстановитьПараметр("Множитель", Множитель);
			if(true/*ВидЗаполнения = "только по заказам"*/)
			{
				//МаксПриоритет = 1;
			}
			//ОпределениеВремениПроведенияПлатежногоДокумента = глЗначениеПеременной("ОпределениеВремениПроведенияПлатежногоДокумента");
			//Запрос.УстановитьПараметр("МаксПриоритет", МаксПриоритет);
			//Запрос.УстановитьПараметр("ОпределениеВремениПроведенияПлатежногоДокументаПоКонцуДняРегистрацииДокумента", ОпределениеВремениПроведенияПлатежногоДокумента = Перечисления.СпособыОпределенияВремениПроведенияПлатежногоДокумента.ПоКонцуДняРегистрацииДокумента);
			//Запрос.УстановитьПараметр("ПустаяДата", '00010101');
			//Результат = Запрос.Выполнить();
			//ТаблицаОстатков = Результат.Выгрузить();
			//ТаблицаПредоплат = ДокументОбъект.ДокументыРасчетовСКонтрагентом.Выгрузить();
			//ТаблицаПредоплат.Очистить();
			if(true/*МаксПриоритет = 3 И НЕ УчетСуммыДокумента*/)
			{
				/*// Заполняем всеми доступными остатками. Выбрать нужные должен будет пользователь,
*/
				/*// удалив лишние строки или откорректировав суммы
*/
			}
			//ДокументОбъект.ДокументыРасчетовСКонтрагентом.Загрузить(ТаблицаПредоплат);
		}
		// ЗаполнитьДокументыРасчетовСКонтрагентом()

		public void ДополнитьСтруктуруПараметровДляЗаполненияТаблицыДокументовРасчетов(/*ДокументОбъект, СтруктураПараметров*/)
		{
			if(true/*ТипЗнч(СтруктураПараметров) <> Тип("Структура")*/)
			{
				//СтруктураПараметров = Новый Структура;
			}
			//СтруктураПараметров.Вставить("ДоговорКонтрагента", ДокументОбъект.ДоговорКонтрагента);
			if(true/*НЕ ЗначениеЗаполнено(ДокументОбъект.ДоговорКонтрагента)*/)
			{
			}
			//СтруктураПараметров.Вставить("ВестиПоДокументамРасчетовСКонтрагентом", ДокументОбъект.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом);
			if(true/*НЕ СтруктураПараметров.ВестиПоДокументамРасчетовСКонтрагентом*/)
			{
			}
			//МетаданныеДокумента = ДокументОбъект.Метаданные();
			if(true/*НЕ СтруктураПараметров.Свойство("СтруктураТабличныхЧастей")*/)
			{
				//СтруктураТабЧастей = Новый Структура;
				//СтруктураПараметров.Вставить("СтруктураТабличныхЧастей", СтруктураТабЧастей);
			}
			if(true/*СтруктураПараметров.Свойство("ЕстьЗаказыВТабличныхЧастях") И НЕ СтруктураПараметров.Свойство("ИмяЗаказаВТабличныхЧастях")*/)
			{
				//СтруктураПараметров.ЕстьЗаказыВТабличныхЧастях = Ложь;
			}
			if(true/*НЕ СтруктураПараметров.Свойство("Направление")*/)
			{
				//СтруктураПараметров.Вставить("Направление", "Поступление");
			}
			if(true/*НЕ СтруктураПараметров.Свойство("ВидЗаполнения")*/)
			{
				//СтруктураПараметров.Вставить("ВидЗаполнения", "только по заказам");
			}
			if(true/*НЕ СтруктураПараметров.Свойство("УчетСуммыДокумента")*/)
			{
				//СтруктураПараметров.Вставить("УчетСуммыДокумента", Истина);
			}
			if(true/*ЗначениеЗаполнено(ДокументОбъект.Дата)*/)
			{
				//СтруктураПараметров.Вставить("Дата", ДокументОбъект.Дата);
			}
			//СтруктураПараметров.Вставить("ОтражатьВРегламентированномУчете", ДокументОбъект.Организация.ОтражатьВРегламентированномУчете);
			if(true/*МетаданныеДокумента.Реквизиты.Найти("ОтражатьВУправленческомУчете") <> Неопределено*/)
			{
				//СтруктураПараметров.Вставить("ОтражатьВУправленческомУчете", ДокументОбъект.ОтражатьВУправленческомУчете);
			}
			if(true/*МетаданныеДокумента.Реквизиты.Найти("СуммаВключаетНДС") <> Неопределено*/)
			{
				//СтруктураПараметров.Вставить("СуммаВключаетНДС", ДокументОбъект.СуммаВключаетНДС);
			}
			//СтруктураПараметров.Вставить("ВалютаВзаиморасчетов",    ДокументОбъект.ДоговорКонтрагента.ВалютаВзаиморасчетов);
			//СтруктураПараметров.Вставить("КурсВзаиморасчетов",      ДокументОбъект.КурсВзаиморасчетов);
			//СтруктураПараметров.Вставить("КратностьВзаиморасчетов", ДокументОбъект.КратностьВзаиморасчетов);
			//СтруктураПараметров.Вставить("ВалютаДокумента", ДокументОбъект.ВалютаДокумента);
			//КурсДокумента      = ЗаполнениеДокументов.КурсДокумента(ДокументОбъект, ДокументОбъект.мВалютаРегламентированногоУчета);
			//КратностьДокумента = ЗаполнениеДокументов.КратностьДокумента(ДокументОбъект, ДокументОбъект.мВалютаРегламентированногоУчета);
			//СтруктураПараметров.Вставить("КурсДокумента",      КурсДокумента);
			//СтруктураПараметров.Вставить("КратностьДокумента", КратностьДокумента);
			//СтруктураПараметров.Вставить("ДоговорКонтрагента", ДокументОбъект.ДоговорКонтрагента);
			//СтруктураПараметров.Вставить("ВедениеВзаиморасчетов", ДокументОбъект.ДоговорКонтрагента.ВедениеВзаиморасчетов);
			//СтруктураПараметров.Вставить("РасчетыВУсловныхЕдиницах", ДокументОбъект.ДоговорКонтрагента.РасчетыВУсловныхЕдиницах);
			//СтруктураПараметров.Вставить("УчетАгентскогоНДС", ДокументОбъект.ДоговорКонтрагента.УчетАгентскогоНДС);
			//ТаблицаСделок = СформироватьТаблицуСделок(ДокументОбъект, СтруктураПараметров);
			//СтруктураПараметров.Вставить("ТаблицаСделок", ТаблицаСделок);
		}
		// Процедура подготавливает необходимые данные и вызывает процедуру заполнения табличной части
		// документов расчетов с контрагентами ("Предоплата", "Документы поступления", "Документы реализации")
		//

		public void ЗаполнитьПредоплату(/*ДокументОбъект, СтруктураПараметров*/)
		{
			if(true/*ДокументОбъект.Проведен И ДокументОбъект.ДокументыРасчетовСКонтрагентом.Количество() > 0*/)
			{
				//ТекстПредупреждения = "Для заполнения табличной части нужно сначала сделать документ непроведенным!";
				//Предупреждение(ТекстПредупреждения);
			}
			if(true/*ДокументОбъект.ДокументыРасчетовСКонтрагентом.Количество() > 0*/)
			{
				//ТекстВопроса = "Перед заполнением табличная часть будет очищена. Заполнить?";
				//Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да, ДокументОбъект.Метаданные().Представление());
				if(true/*Ответ <> КодВозвратаДиалога.Да*/)
				{
				}
				//ДокументОбъект.ДокументыРасчетовСКонтрагентом.Очистить();
			}
			//ДополнитьСтруктуруПараметровДляЗаполненияТаблицыДокументовРасчетов(ДокументОбъект, СтруктураПараметров);
			//ЗаполнитьТаблицуДокументовРасчетовСКонтрагентом(ДокументОбъект, СтруктураПараметров);
		}
		// Процедура заполняет поля СуммаВзаиморасчетов и СуммаРегл
		// в строке табличной части ДокументыРасчетовСКонтрагентом
		// Параметры:
		// СуммаВзаиморасчетовУказанаВСтроке - <Булево>. Если Истина - рассчитываем только сумму регл.учета
		//                                     по указанной в строке сумме взаиморасчетов.
		//                                     Если Ложь - рассчитываем обе суммы
		//

		public void РассчитатьПогашаемыеСуммыПоДокументуРасчетов(/*ДокументОбъект, ДанныеСтроки, СтруктураПараметров, РассчитыватьСуммуВзаиморасчетов = Истина*/)
		{
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("ДоговорКонтрагента", ДокументОбъект.ДоговорКонтрагента);
			//ОплатаПоНесколькимСделкам = Ложь;
			if(true/*СтруктураПараметров.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом*/)
			{
				//ТекСделка = Неопределено;
			}
			//Запрос.УстановитьПараметр("Сделка", ТекСделка);
			//Запрос.УстановитьПараметр("ДокументРасчетовСКонтрагентом", ДанныеСтроки.ДокументРасчетовСКонтрагентом);
			if(true/*СтруктураПараметров.Свойство("ЭтоВозврат")*/)
			{
				//МножительВозврата = ?(СтруктураПараметров.ЭтоВозврат, -1, 1);
			}
			if(true/*СтруктураПараметров.Направление = "Реализация"*/)
			{
				//МножительНаправления = -1;
				//ВидРасчетовСКонтрагентом = Перечисления.ВидыРасчетовСКонтрагентами.ПоРеализации;
			}
			//Множитель = МножительНаправления * МножительВозврата;
			//Запрос.УстановитьПараметр("ВидРасчетовСКонтрагентом", ВидРасчетовСКонтрагентом);
			//Запрос.УстановитьПараметр("УпрУчет", ДокументОбъект.ОтражатьВУправленческомУчете);
			//Запрос.УстановитьПараметр("Множитель", Множитель);
			/*Запрос.Текст = 
	"ВЫБРАТЬ
	|	&ДоговорКонтрагента КАК ДоговорКонтрагента,
	|	ВЫБОР
	|		КОГДА ЕСТЬNULL(ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток, 0) * &Множитель > 0
	|			ТОГДА ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток * &Множитель
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК СуммаВзаиморасчетов,
	|	ВЫБОР
	|		КОГДА ЕСТЬNULL(ВзаиморасчетыПоДокументамОстатки.СуммаРеглОстаток, 0) * &Множитель > 0
	|			ТОГДА ВзаиморасчетыПоДокументамОстатки.СуммаРеглОстаток * &Множитель
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК СуммаРегл
	|ИЗ
	|	РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(
	|		,
	|		ДоговорКонтрагента = &ДоговорКонтрагента
	|		    И Сделка = &Сделка
	|		    И ДокументРасчетовСКонтрагентом = &ДокументРасчетовСКонтрагентом
	|		    И ВидРасчетовСКонтрагентом = &ВидРасчетовСКонтрагентом
	|		    И УпрУчет = &УпрУчет) КАК ВзаиморасчетыПоДокументамОстатки";*/
			//Выборка = Запрос.Выполнить().Выбрать();
			//Выборка.Следующий();
			if(true/*СтруктураПараметров.Свойство("КурсСтрокиДокументаРасчетов") И ТипЗнч(СтруктураПараметров.КурсСтрокиДокументаРасчетов) = Тип("Число")*/)
			{
				//КурсСтрокиДокументаРасчетов = СтруктураПараметров.КурсСтрокиДокументаРасчетов;
			}
			//КурсОстатка = ?(Выборка.СуммаВзаиморасчетов = 0, КурсСтрокиДокументаРасчетов, Выборка.СуммаРегл / Выборка.СуммаВзаиморасчетов);
			if(true/*НЕ РассчитыватьСуммуВзаиморасчетов*/)
			{
				//ДанныеСтроки.СуммаРегл = Окр(ДанныеСтроки.СуммаВзаиморасчетов * КурсОстатка, 2);
				if(true/*НЕ ДокументОбъект.Проведен И Выборка.СуммаВзаиморасчетов < ДанныеСтроки.СуммаВзаиморасчетов*/)
				{
					//ВалютаПредставление = Строка(ДокументОбъект.ДоговорКонтрагента.ВалютаВзаиморасчетов);
					/*ТекстСообщения = "Указана сумма взаиморасчетов, превышающая непогашенный остаток по документу расчетов с контрагентом!
			| Остаток " + Выборка.СуммаВзаиморасчетов + " " + ВалютаПредставление + "; "
			+ " указана сумма " + ДанныеСтроки.СуммаВзаиморасчетов + " " + ВалютаПредставление + "; "
			+ " превышение " + (ДанныеСтроки.СуммаВзаиморасчетов - Выборка.СуммаВзаиморасчетов) + " " + ВалютаПредставление;*/
					//Сообщить(ТекстСообщения, СтатусСообщения.Важное);
				}
			}
		}
		// Процедура заполняет поле ДатаОплаты в строке табличной части ДокументыРасчетовСКонтрагентом
		// при изменении документа расчетов
		//

		public void ОпределитьДатуОплатыДокументаРасчетовСКонтрагентом(/*ДанныеСтроки*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(ДанныеСтроки.ДокументРасчетовСКонтрагентом)*/)
			{
				//ДанныеСтроки.ДатаОплаты = '00010101';
			}
			//МетаданныеДокумента = ДанныеСтроки.ДокументРасчетовСКонтрагентом.Метаданные();
			//Запрос = Новый Запрос;
			//ЕстьДатаОплаты = МетаданныеДокумента.Реквизиты.Найти("ДатаОплаты") <> Неопределено;
			if(true/*ЕстьДатаОплаты*/)
			{
				/*Запрос.Текст = 
		"ВЫБРАТЬ
		|	ШапкаДокумента.Дата КАК ДатаДокумента,
		|	ШапкаДокумента.ДатаОплаты КАК ДатаОплаты
		|ИЗ
		|	Документ." + МетаданныеДокумента.Имя + " КАК ШапкаДокумента
		|ГДЕ
		|	ШапкаДокумента.Ссылка = &ДокументРасчетов";*/
			}
			//Запрос.УстановитьПараметр("ДокументРасчетов", ДанныеСтроки.ДокументРасчетовСКонтрагентом);
			//Результат = Запрос.Выполнить();
			//Выборка = Результат.Выбрать();
			//Выборка.Следующий();
			//ДанныеСтроки.ДатаОплаты = УправлениеДенежнымиСредствами.ПолучитьДатуДвижений(Выборка.ДатаДокумента, Выборка.ДатаОплаты);
		}
		// Функция возвращает документ расчетов с контрагентом
		//

		public object ПолучитьДокументРасчетовСКонтрагентом(/*СтруктураШапкиДокумента*/)
		{
			if(true/*СтруктураШапкиДокумента.ВидДокумента = "КорректировкаПоступления"*/)
			{
			}
			return null;
		}
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ ПРОВЕДЕНИЯ ДОКУМЕНТОВ ПО ВЗАИМОРАСЧЕТАМ

		public object СформироватьТаблицуСделокДляПроведенияПоВзаиморасчетам(/*СтруктураПараметров, СтруктураШапкиДокумента*/)
		{
			//МогутБытьЗаказыВТабличныхЧастях = СтруктураШапкиДокумента.ВедениеВзаиморасчетов <> Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоСчетам;
			if(true/*МогутБытьЗаказыВТабличныхЧастях 
		И СтруктураПараметров.Свойство("ЕстьЗаказыВТабличныхЧастях") И СтруктураПараметров.ЕстьЗаказыВТабличныхЧастях = Истина*/)
			{
				//ЕстьЗаказыВТабличныхЧастях = Истина;
				//ИмяКолонкиСделка = СтруктураПараметров.ИмяЗаказаВТабличныхЧастях;
			}
			//ТаблицаСделок = Новый ТаблицаЗначений;
			/*ТаблицаСделок.Колонки.Добавить(ИмяКолонкиСделка, Новый ОписаниеТипов("ДокументСсылка.ЗаказПокупателя, ДокументСсылка.ЗаказПоставщику, 
		|ДокументСсылка.СчетНаОплатуПокупателю, ДокументСсылка.СчетНаОплатуПоставщика, Неопределено"), ИмяКолонкиСделка);*/
			//ОбщиеЧисловыеКолонки = "СуммаВзаиморасчетов, СуммаРегл, СуммаУпр";
			if(true/*СтруктураШапкиДокумента.ВидДокумента = "ПоступлениеДопРасходов"*/)
			{
				//ДопЧисловыеКолонки = "СуммаВзаиморасчетовРаспределения, СуммаРеглРаспределения, СуммаУпрРаспределения";
			}
			//ЧисловыеКолонки = ОбщиеЧисловыеКолонки + ", " + ДопЧисловыеКолонки;
			//СтруктураЧисловыхКолонок = Новый Структура(ЧисловыеКолонки);
			if(true/*НЕ СтруктураПараметров.Свойство("ИмяСделкиВШапкеДокумента")*/)
			{
				//ИмяСделкиВШапкеДокумента = "Сделка";
			}
			if(true/*СтруктураШапкиДокумента.ВидДокумента = "ПоступлениеДопРасходов"*/)
			{
			}
			//ТаблицаСделок.Свернуть(ИмяКолонкиСделка, ОбщиеЧисловыеКолонки);
			//ТаблицаСделок.Колонки[ИмяКолонкиСделка].Имя = "Сделка";
			return null;
		}
		// Проверяет правильность заполнения строк табличной части "Документы расчетов с контрагентом".
		//
		// Параметры:
		// Параметры:
		//  ДокументОбъект          - документ, табличная часть которого проверяется
		//  СтруктураШапкиДокумента - структура, содержащая реквизиты шапки документа и результаты запроса по шапке
		//  Отказ                   - флаг отказа в проведении
		//  Заголовок               - строка, заголовок сообщения об ошибке проведения.
		//

		public void ПроверитьЗаполнениеТабличнойЧастиДокументыРасчетовСКонтрагентом(/*ДокументОбъект, СтруктураШапкиДокумента, Отказ, Заголовок*/)
		{
			if(true/*СтруктураШапкиДокумента.ВидДокумента = "КорректировкаПоступления"
			ИЛИ СтруктураШапкиДокумента.ВидДокумента = "КорректировкаРеализации"*/)
			{
				/*// Табличной части ДокументыРасчетовСКонтрагентом нет - проверку выполнять не нужно
*/
			}
			if(true/*СтруктураШапкиДокумента.ВестиПоДокументамРасчетовСКонтрагентом*/)
			{
				/*// Укажем, что надо проверить:
*/
				//СтруктураОбязательныхПолей = Новый Структура("ДокументРасчетовСКонтрагентом, СуммаВзаиморасчетов");
				if(true/*СтруктураШапкиДокумента.ОтражатьВРегламентированномУчете 
			И СтруктураШапкиДокумента.ВалютаВзаиморасчетов <> СтруктураШапкиДокумента.ВалютаРегламентированногоУчета*/)
				{
					//СтруктураОбязательныхПолей.Вставить("СуммаРегл");
				}
				/*// Теперь вызовем общую процедуру проверки.
*/
				//ЗаполнениеДокументов.ПроверитьЗаполнениеТабличнойЧасти(ДокументОбъект, "ДокументыРасчетовСКонтрагентом", СтруктураОбязательныхПолей, Отказ, Заголовок);
			}
		}
		// ПроверитьЗаполнениеТабличнойЧастиДокументыРасчетовСКонтрагентом()

		public void ИзменитьЗнакКолонокТаблицы(/*Таблица, СтруктураКолонок*/)
		{
		}

		public object ПодготовитьТаблицуПоВзаиморасчетам(/*ДокументОбъект, СтруктураПараметров, СтруктураШапкиДокумента, ТаблицаСделокДокумента, Отказ, Заголовок*/)
		{
			if(true/*Отказ*/)
			{
			}
			//ТаблицаСделок = ТаблицаСделокДокумента.Скопировать();
			if(true/*СтруктураШапкиДокумента.ВедениеВзаиморасчетов <> Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам*/)
			{
				if(true/*СтруктураШапкиДокумента.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом*/)
				{
					//ТаблицаСделок.ЗаполнитьЗначения(Неопределено, "Сделка");
				}
				//ТаблицаСделок.Свернуть("Сделка", "СуммаВзаиморасчетов, СуммаРегл, СуммаУпр");
			}
			if(true/*НЕ СтруктураШапкиДокумента.ВестиПоДокументамРасчетовСКонтрагентом*/)
			{
				//ТаблицаПоВзаиморасчетам = ТаблицаСделок.Скопировать();
			}
			if(true/*СтруктураШапкиДокумента.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом*/)
			{
				//СделкаДляВзаиморасчетов = Неопределено;
			}
			/*// Создаем колонки таблицы явным образом, а не загружаем таб.часть документа,
*/
			/*// чтобы не устанавливалось ограничение типов колонок в соответствие с типом реквизитов документа
*/
			//ТаблицаПоВзаиморасчетам = Новый ТаблицаЗначений;
			/*ТаблицаПоВзаиморасчетам.Колонки.Добавить("Сделка", Новый ОписаниеТипов("ДокументСсылка.ЗаказПокупателя, ДокументСсылка.ЗаказПоставщику, 
		|ДокументСсылка.СчетНаОплатуПокупателю, ДокументСсылка.СчетНаОплатуПоставщика, Неопределено"), "Сделка");*/
			//ТаблицаПоВзаиморасчетам.Колонки.Добавить("ДокументРасчетовСКонтрагентом", Новый ОписаниеТипов(Документы.ТипВсеСсылки(), "Неопределено"), "ДокументРасчетовСКонтрагентом");
			//ТаблицаПоВзаиморасчетам.Колонки.Добавить("ДатаОплаты", Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя)));
			//ТаблицаПоВзаиморасчетам.Колонки.Добавить("СуммаВзаиморасчетов", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,2)));
			//ТаблицаПоВзаиморасчетам.Колонки.Добавить("СуммаРегл", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,2)));
			//ТаблицаПоВзаиморасчетам.Колонки.Добавить("СуммаУпр", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,2)));
			if(true/*СтруктураШапкиДокумента.ВидДокумента <> "КорректировкаПоступления"
		И СтруктураШапкиДокумента.ВидДокумента <> "КорректировкаРеализации"*/)
			{
				//ЕстьСделкаВТЧ = ДокументОбъект.Метаданные().ТабличныеЧасти.ДокументыРасчетовСКонтрагентом.Реквизиты.Найти("Сделка") <> Неопределено;
			}
			//ЭтоВозврат = СтруктураПараметров.Свойство("ЭтоВозврат") И СтруктураПараметров.ЭтоВозврат;
			if(true/*ЭтоВозврат*/)
			{
				//ИзменитьЗнакКолонокТаблицы(ТаблицаПоВзаиморасчетам, Новый Структура("СуммаВзаиморасчетов, СуммаРегл, СуммаУпр"));
			}
			/*// Получим документ расчетов с контрагентом
*/
			//ДокументРасчетовСКонтрагентом = ПолучитьДокументРасчетовСКонтрагентом(СтруктураШапкиДокумента);
			if(true/*СтруктураШапкиДокумента.ВедениеВзаиморасчетов <> Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам*/)
			{
				//ВсегоСуммаВзаиморасчетов = ТаблицаСделок.Итог("СуммаВзаиморасчетов");
				//ВсегоСуммаПредоплаты     = ТаблицаПоВзаиморасчетам.Итог("СуммаВзаиморасчетов");
				if(true/*ВсегоСуммаВзаиморасчетов <> ВсегоСуммаПредоплаты*/)
				{
					//СтрокаВзаиморасчетов = ТаблицаПоВзаиморасчетам.Добавить();
					//СтрокаВзаиморасчетов.Сделка                        = СделкаДляВзаиморасчетов;
					//СтрокаВзаиморасчетов.ДокументРасчетовСКонтрагентом = ДокументРасчетовСКонтрагентом;
					//СтрокаВзаиморасчетов.СуммаВзаиморасчетов = ВсегоСуммаВзаиморасчетов - ВсегоСуммаПредоплаты;
					if(true/*СтруктураШапкиДокумента.ВалютаДокумента = СтруктураШапкиДокумента.ВалютаВзаиморасчетов*/)
					{
						/*СтрокаВзаиморасчетов.СуммаРегл = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(
					СтрокаВзаиморасчетов.СуммаВзаиморасчетов,
					СтруктураШапкиДокумента.ВалютаВзаиморасчетов, СтруктураШапкиДокумента.ВалютаРегламентированногоУчета,
					СтруктураШапкиДокумента.КурсВзаиморасчетов, 1,
					СтруктураШапкиДокумента.КратностьВзаиморасчетов, 1);*/
					}
					//СтрокаВзаиморасчетов.СуммаУпр = ТаблицаСделок.Итог("СуммаУпр") - ТаблицаПоВзаиморасчетам.Итог("СуммаУпр");
				}
			}
			if(true/*СтруктураШапкиДокумента.ВидДокумента <> "КорректировкаПоступления"
		И СтруктураШапкиДокумента.ВидДокумента <> "КорректировкаРеализации"*/)
			{
				/*// Выполним проверку ТаблицаПоВзаиморасчетам 
*/
				//Множитель = ?(ЭтоВозврат, -1, 1);
			}
			return null;
		}
		// ПодготовитьТаблицуПоВзаиморасчетам()

		public object ПодготовитьТаблицуПоРасчетам(/*ТаблицаСделок, СтруктураШапкиДокумента, Отказ, Заголовок*/)
		{
			if(true/*Отказ ИЛИ НЕ СтруктураШапкиДокумента.ОтражатьВУправленческомУчете*/)
			{
			}
			//ТаблицаПоРасчетам = ТаблицаСделок.Скопировать();
			//УдаляемыеСтроки = Новый Массив;
			return null;
		}

		public void ПодготовитьТаблицыДляПроведенияПоВзаиморасчетам(/*ТаблицаПоВзаиморасчетам, ТаблицаПоРасчетам, 
	                                                      ДокументОбъект, СтруктураПараметров, СтруктураШапкиДокумента, Отказ, Заголовок*/)
		{
			if(true/*СтруктураПараметров.Свойство("ПроводитьПоВзаиморасчетам") И НЕ СтруктураПараметров.ПроводитьПоВзаиморасчетам*/)
			{
				//ТаблицаПоВзаиморасчетам = Новый ТаблицаЗначений;
				//ТаблицаПоРасчетам       = Новый ТаблицаЗначений;
			}
			//ПроверитьЗаполнениеТабличнойЧастиДокументыРасчетовСКонтрагентом(ДокументОбъект, СтруктураШапкиДокумента, Отказ, Заголовок);
			//ТаблицаСделок = СформироватьТаблицуСделокДляПроведенияПоВзаиморасчетам(СтруктураПараметров, СтруктураШапкиДокумента);
			//СтруктураПараметров.Вставить("ТаблицаСделок", ТаблицаСделок);
			//ТаблицаПоВзаиморасчетам = ПодготовитьТаблицуПоВзаиморасчетам(ДокументОбъект, СтруктураПараметров, СтруктураШапкиДокумента, ТаблицаСделок, Отказ, Заголовок);
			//ТаблицаПоРасчетам = ПодготовитьТаблицуПоРасчетам(ТаблицаСделок, СтруктураШапкиДокумента, Отказ, Заголовок);
		}
		// ПодготовитьТаблицыДляПроведенияПоВзаиморасчетам()

		public void ВыполнитьДвиженияПоРегистрамУпрВзаиморасчетов(/*ДокументОбъект, СтруктураШапкиДокумента, 
	                                                    СтруктураПараметров, ТаблицаПоВзаиморасчетам, ТаблицаПоРасчетам, 
	                                                    ВидДвижения, Отказ, Заголовок*/)
		{
			/*// По регистру ВзаиморасчетыСКонтрагентами
*/
			if(true/*ТаблицаПоВзаиморасчетам.Количество() > 0*/)
			{
				//НаборДвиженийВзаиморасчеты = ДокументОбъект.Движения.ВзаиморасчетыСКонтрагентами;
				//ТаблицаДвижений = НаборДвиженийВзаиморасчеты.Выгрузить();
				//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоВзаиморасчетам, ТаблицаДвижений);
				//ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.Организация, "Организация");
				//ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.Контрагент, "Контрагент");
				//ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.ДоговорКонтрагента, "ДоговорКонтрагента");
				//НаборДвиженийВзаиморасчеты.мПериод          = СтруктураШапкиДокумента.Дата;
				//НаборДвиженийВзаиморасчеты.мТаблицаДвижений = ТаблицаДвижений;
				/*// Проверка остатков
*/
				/*ОтключитьКонтрольВзаиморасчетов = СтруктураШапкиДокумента.Свойство("ОтключитьКонтрольВзаиморасчетов") 
		                                И СтруктураШапкиДокумента.ОтключитьКонтрольВзаиморасчетов;*/
				if(true/*НЕ ОтключитьКонтрольВзаиморасчетов*/)
				{
					//НаборДвиженийВзаиморасчеты.КонтрольОстатков(ДокументОбъект, "ДокументыРасчетовСКонтрагентом", СтруктураШапкиДокумента, СтруктураПараметров, Отказ, Заголовок, СтруктураШапкиДокумента.РежимПроведения, "СуммаВзаиморасчетов");
				}
				if(true/*Не Отказ*/)
				{
					//ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(НаборДвиженийВзаиморасчеты, ВидДвижения);
				}
			}
			/*// По регистру РасчетыСКонтрагентами
*/
			if(true/*ТаблицаПоРасчетам.Количество() > 0*/)
			{
				//НаборДвиженийРасчеты = ДокументОбъект.Движения.РасчетыСКонтрагентами;
				//ТаблицаДвижений = НаборДвиженийРасчеты.Выгрузить();
				//ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоРасчетам, ТаблицаДвижений);
				//ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.Организация, "Организация");
				//ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.Контрагент, "Контрагент");
				//ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.ДоговорКонтрагента, "ДоговорКонтрагента");
				if(true/*СтруктураПараметров.Свойство("ЭтоВозврат") И СтруктураПараметров.ЭтоВозврат*/)
				{
					//ТаблицаДвижений.ЗаполнитьЗначения(Перечисления.РасчетыВозврат.Возврат, "РасчетыВозврат");
				}
				//НаборДвиженийРасчеты.мПериод          = СтруктураШапкиДокумента.Дата;
				//НаборДвиженийРасчеты.мТаблицаДвижений = ТаблицаДвижений;
				if(true/*Не Отказ*/)
				{
					//ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(НаборДвиженийРасчеты, ВидДвижения);
				}
			}
		}
		// Проверяет возможность проведения в БУ и НУ в зависимости от договора взаиморасчетов.
		//
		// Параметры:
		//  ДоговорКонтрагента             - ссылка на справочник договора, определяет договор с контрагентом;
		//  ВалютаДокумента                - ссылка на справочник валют, определяет валюту документа;
		//  ОтражатьВБухгалтерскомУчете    - булево, признак отражения документа в бух. учете;
		//  ОтражатьВНалоговомУчете        - булево, признак отражения документа в налоговом учете;
		//  ВалютаРегламентированногоУчета - ссылка на справочник валют, определяет валюту ведения регл. учета;
		//  ЭтоДокументОплаты              - булево, определяет является ли это документом оплаты,
		//                                   необязательный параметр, по умолчанию - Ложь;
		//  Отказ                          - булево, признак отказа в проведении документаРасчетыВУсловныхЕдиницах;
		//  Заголовок                      - строка, заголовок сообщения в отказе проведения;
		//  ДополнениеКСообщению           - строка, дополнение к сообщению в отказе проведении,
		//                                   необязательный, по умолчанию - пустая строка;
		//  ВалютаВзаиморасчетов           - ссылка на справочник валют, определяет валюту взаиморасчетов по договору,
		//                                   если не передан, берется из договора;
		//  РасчетыВУсловныхЕдиницах - булево, признак ведения взаиморасчетов в условных единицах,
		//                                   если не передан, берется из договора.
		//
		// Возвращаемое значение:
		//  Истина, если документ можно проводить по бух. или (и) налоговому учету, инчае - Ложь.
		//

		public object ПроверкаВозможностиПроведенияВ_БУ_НУ(/*ДоговорКонтрагента, ВалютаДокумента,ОтражатьВБухгалтерскомУчете,
                          ОтражатьВНалоговомУчете, ВалютаРегламентированногоУчета, ЭтоДокументОплаты = Ложь,
                          Отказ = Ложь, Заголовок,ДополнениеКСообщению = "",
                          ВалютаВзаиморасчетов = Неопределено, РасчетыВУсловныхЕдиницах = Неопределено*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(ДоговорКонтрагента)*/)
			{
			}
			if(true/*НЕ ЗначениеЗаполнено(ВалютаРегламентированногоУчета)*/)
			{
				//ВалютаРегламентированногоУчета = глЗначениеПеременной("ВалютаРегламентированногоУчета");
			}
			if(true/*ВалютаВзаиморасчетов = Неопределено*/)
			{
				//ВалютаВзаиморасчетов = ДоговорКонтрагента.ВалютаВзаиморасчетов;
			}
			if(true/*РасчетыВУсловныхЕдиницах = Неопределено*/)
			{
				//РасчетыВУсловныхЕдиницах = ДоговорКонтрагента.РасчетыВУсловныхЕдиницах;
			}
			if(true/*ВалютаВзаиморасчетов <> ВалютаДокумента 
	   И ВалютаРегламентированногоУчета <> ВалютаДокумента*/)
			{
				/*// Документ выписан в валюте отличной от валюты регламентированного учета и валюты расчетов. 
*/
				/*// Возможно только в документах оплаты.
*/
				/*// Не отражается в б.у.
*/
				if(true/*ОтражатьВБухгалтерскомУчете 
		 Или ОтражатьВНалоговомУчете*/)
				{
					/*ОбщегоНазначения.СообщитьОбОшибке(ДополнениеКСообщению + " Валюта документа ("+СокрЛП(ВалютаДокумента)
			                 + ") отличается от валюты регламентированного учета (" + СокрЛП(ВалютаРегламентированногоУчета)
			                 + ") и валюты расчетов по договору """ + СокрЛП(ДоговорКонтрагента) 
			                 + """ (" + СокрЛП(ВалютаВзаиморасчетов) + ").
			|Документ не может быть проведен по бухгалтерскому или налоговому учету.",Отказ,Заголовок);*/
				}
			}
			return null;
		}
		// ПроверкаВозможностиПроведенияВ_БУ_НУ()
		/////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ РАБОТЫ С РЕГИСТРОМ ОПЕРАТИВНОГО УЧЕТА РАСЧЕТОВ ПО ДОКУМЕНТАМ
		// Движения документов оплаты по регистру оперативных расчетов по документам
		//
		// Параметры
		//  СтруктураШапкиДокумента		– <Структура> – структура с данными шапки документа и другими, необходимыми для формирования движений
		//  ДатаДвижений				– <Дата> – дата и время формирования движений
		//  ИмяТаблицыПлатежейИлиТаблица– <Строка> –  Имя табличной части документа оплаты с расшифровкой платежей
		//								или <ТаблицаЗначений> - подготовленная таблица платежей по расчетным документам
		//  ВидРасчетовСКонтрагентом	- <ПеречислениеСсылка.ВидыРасчетовСКонтрагентами>
		//  ВидДвижения					- <ВидДвиженияНакопления>
		//  Движения 					- <Коллекция движений или структура с соответствующими свойствами>
		//								– Движения документа по регистрам (в т.ч. по регистру оперативных взаиморасчетов)
		//  Отказ						- <Булево> – признак ошибки при проведения для остановки проведения документа
		//  Заголовок					- <Строка> – Представление заголовка документа для использования при формировании сообщения об ошибках
		//

		public void ОтражениеОплатыВРегистреОперативныхРасчетовПоДокументам(/*СтруктураШапкиДокумента, ДатаДвижений, ИмяТаблицыПлатежейИлиТаблица, ВидРасчетовСКонтрагентом, ВидДвижения, Движения, Отказ, Заголовок*/)
		{
			//Ссылка = СтруктураШапкиДокумента.Ссылка;
			//МетаданныеДокумента = Ссылка.Метаданные();
			//ИмяДокумента = МетаданныеДокумента.Имя;
			//ПереданоИмяТаблицы =  ТипЗнч(ИмяТаблицыПлатежейИлиТаблица) = Тип("Строка");
			if(true/*ПереданоИмяТаблицы*/)
			{
				/*// Таблицу платежей получаем запросом
*/
				//ИмяТаблицыПлатежей = ИмяТаблицыПлатежейИлиТаблица;
				//Запрос = Новый Запрос;
				/*ТекстЗапроса = 
		"ВЫБРАТЬ
		|	ТаблицаПлатежей.ДоговорКонтрагента КАК ДоговорКонтрагента,
		|	ПРЕДСТАВЛЕНИЕ(ТаблицаПлатежей.ДоговорКонтрагента) КАК ДоговорКонтрагентаПредставление,
		|	ВЫБОР
		|		КОГДА ТаблицаПлатежей.ДоговорКонтрагента.ВедениеВзаиморасчетов = &ПоДоговоруВЦелом
		|			ТОГДА НЕОПРЕДЕЛЕНО
		|		КОГДА ТаблицаПлатежей.Сделка В (&ПустыеСделки)
		|			ТОГДА НЕОПРЕДЕЛЕНО
		|		ИНАЧЕ ТаблицаПлатежей.Сделка
		|	КОНЕЦ КАК Сделка,
		|	ПРЕДСТАВЛЕНИЕ(ВЫБОР
		|			КОГДА ТаблицаПлатежей.ДоговорКонтрагента.ВедениеВзаиморасчетов = &ПоДоговоруВЦелом
		|				ТОГДА НЕОПРЕДЕЛЕНО
		|			КОГДА ТаблицаПлатежей.Сделка В (&ПустыеСделки)
		|				ТОГДА НЕОПРЕДЕЛЕНО
		|			ИНАЧЕ ТаблицаПлатежей.Сделка
		|		КОНЕЦ) КАК СделкаПредставление,
		|	ВЫБОР
		|		КОГДА ТаблицаПлатежей.ДокументРасчетовСКонтрагентом В (&ПустыеРасчетныеДокументы)
		|			ТОГДА НЕОПРЕДЕЛЕНО
		|		ИНАЧЕ ТаблицаПлатежей.ДокументРасчетовСКонтрагентом
		|	КОНЕЦ КАК ДокументРасчетовСКонтрагентом,
		|	ПРЕДСТАВЛЕНИЕ(ВЫБОР
		|			КОГДА ТаблицаПлатежей.ДокументРасчетовСКонтрагентом В (&ПустыеРасчетныеДокументы)
		|				ТОГДА НЕОПРЕДЕЛЕНО
		|			ИНАЧЕ ТаблицаПлатежей.ДокументРасчетовСКонтрагентом
		|		КОНЕЦ) КАК ДокументРасчетовСКонтрагентомПредставление,
		|	ТаблицаПлатежей.ДоговорКонтрагента.ВедениеВзаиморасчетов КАК ВедениеВзаиморасчетов,
		|	ТаблицаПлатежей.ДоговорКонтрагента.РасчетыВУсловныхЕдиницах КАК РасчетыВУсловныхЕдиницах,
		|	ТаблицаПлатежей.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
		|	ПРЕДСТАВЛЕНИЕ(ТаблицаПлатежей.ДоговорКонтрагента.ВалютаВзаиморасчетов) КАК ВалютаВзаиморасчетовПредставление,
		|	СУММА(ВЫБОР
		|			КОГДА &СуммаПлатежаВВалютеРеглУчета
		|				ТОГДА ТаблицаПлатежей.СуммаПлатежа
		|			ИНАЧЕ ВЫБОР
		|					КОГДА ТаблицаПлатежей.КурсВзаиморасчетов = 0
		|							ИЛИ ТаблицаПлатежей.КратностьВзаиморасчетов = 0
		|						ТОГДА 0
		|					ИНАЧЕ ВЫРАЗИТЬ(ТаблицаПлатежей.СуммаВзаиморасчетов * ТаблицаПлатежей.КурсВзаиморасчетов / ТаблицаПлатежей.КратностьВзаиморасчетов КАК ЧИСЛО(15, 2))
		|				КОНЕЦ
		|		КОНЕЦ) КАК СуммаРегл,
		|	СУММА(ТаблицаПлатежей.СуммаВзаиморасчетов) КАК СуммаВзаиморасчетов,
		|	МИНИМУМ(ТаблицаПлатежей.НомерСтроки) КАК НомерСтроки
		|ИЗ
		|	Документ." + ИмяДокумента + "." + ИмяТаблицыПлатежей + " КАК ТаблицаПлатежей
		// Пример:
		//|	Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа КАК ТаблицаПлатежей
		|ГДЕ
		|	ТаблицаПлатежей.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом = ИСТИНА
		|	И ТаблицаПлатежей.Ссылка = &Ссылка
		|
		|СГРУППИРОВАТЬ ПО
		|	ТаблицаПлатежей.ДоговорКонтрагента,
		|	ВЫБОР
		|		КОГДА ТаблицаПлатежей.ДоговорКонтрагента.ВедениеВзаиморасчетов = &ПоДоговоруВЦелом
		|			ТОГДА НЕОПРЕДЕЛЕНО
		|		КОГДА ТаблицаПлатежей.Сделка В (&ПустыеСделки)
		|			ТОГДА НЕОПРЕДЕЛЕНО
		|		ИНАЧЕ ТаблицаПлатежей.Сделка
		|	КОНЕЦ,
		|	ВЫБОР
		|		КОГДА ТаблицаПлатежей.ДокументРасчетовСКонтрагентом В (&ПустыеРасчетныеДокументы)
		|			ТОГДА НЕОПРЕДЕЛЕНО
		|		ИНАЧЕ ТаблицаПлатежей.ДокументРасчетовСКонтрагентом
		|	КОНЕЦ,
		|	ТаблицаПлатежей.ДоговорКонтрагента.ВедениеВзаиморасчетов,
		|	ТаблицаПлатежей.ДоговорКонтрагента.РасчетыВУсловныхЕдиницах,
		|	ПРЕДСТАВЛЕНИЕ(ТаблицаПлатежей.ДоговорКонтрагента.ВалютаВзаиморасчетов),
		|	ПРЕДСТАВЛЕНИЕ(ВЫБОР
		|			КОГДА ТаблицаПлатежей.ДоговорКонтрагента.ВедениеВзаиморасчетов = &ПоДоговоруВЦелом
		|				ТОГДА НЕОПРЕДЕЛЕНО
		|			КОГДА ТаблицаПлатежей.Сделка В (&ПустыеСделки)
		|				ТОГДА НЕОПРЕДЕЛЕНО
		|			ИНАЧЕ ТаблицаПлатежей.Сделка
		|		КОНЕЦ),
		|	ПРЕДСТАВЛЕНИЕ(ВЫБОР
		|			КОГДА ТаблицаПлатежей.ДокументРасчетовСКонтрагентом В (&ПустыеРасчетныеДокументы)
		|				ТОГДА НЕОПРЕДЕЛЕНО
		|			ИНАЧЕ ТаблицаПлатежей.ДокументРасчетовСКонтрагентом
		|		КОНЕЦ)
		|
		|УПОРЯДОЧИТЬ ПО
		|	НомерСтроки";*/
				if(true/*ТипЗнч(Ссылка) = Тип("ДокументСсылка.АвансовыйОтчет")*/)
				{
					//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТаблицаПлатежей.СуммаПлатежа", "ТаблицаПлатежей.Сумма");
				}
				//Запрос.Текст = ТекстЗапроса;
				//Запрос.УстановитьПараметр("Ссылка", Ссылка);
				//Запрос.УстановитьПараметр("ПоДоговоруВЦелом", Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом);
				//СуммаПлатежаВВалютеРеглУчета = СтруктураШапкиДокумента.ВалютаДокумента = СтруктураШапкиДокумента.ВалютаРегламентированногоУчета;
				//Запрос.УстановитьПараметр("СуммаПлатежаВВалютеРеглУчета", СуммаПлатежаВВалютеРеглУчета);
				//РеквизитыМетаданныхТабЧастиДокумента = МетаданныеДокумента.ТабличныеЧасти[ИмяТаблицыПлатежей].Реквизиты;
				//ТипыСделок = РеквизитыМетаданныхТабЧастиДокумента.Сделка.Тип.Типы();
				//МассивПустыхСделок = Новый Массив;
				//ТипыРасчетныхДокументов = РеквизитыМетаданныхТабЧастиДокумента.ДокументРасчетовСКонтрагентом.Тип.Типы();
				//МассивПустыхРасчетныхДокументов = Новый Массив;
				//Запрос.УстановитьПараметр("ПустыеСделки",             МассивПустыхСделок);
				//Запрос.УстановитьПараметр("ПустыеРасчетныеДокументы", МассивПустыхРасчетныхДокументов);
				//Результат = Запрос.Выполнить();
				if(true/*Результат.Пустой()*/)
				{
				}
				//ТаблицаПлатежей = Результат.Выгрузить();
			}
			//УпрУчет = СтруктураШапкиДокумента.ОтражатьВУправленческомУчете;
			//ЗнакОстатка = ?(ВидДвижения = ВидДвиженияНакопления.Расход, 1, -1);
			/*// Определение состояния расчетов по документам
*/
			//Запрос = Новый Запрос;
			//МенеджерВремТаблиц = Новый МенеджерВременныхТаблиц;
			//Запрос.МенеджерВременныхТаблиц = МенеджерВремТаблиц;
			/*Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	Таб.ДоговорКонтрагента,
	|	Таб.Сделка,
	|	Таб.ДокументРасчетовСКонтрагентом
	|ПОМЕСТИТЬ ТаблицаПлатежей
	|ИЗ
	|	&ТаблицаПлатежей КАК Таб
	|ГДЕ 
	|	НЕ (Таб.ДокументРасчетовСКонтрагентом = &Ссылка)
	|		И НЕ (Таб.ДокументРасчетовСКонтрагентом = НЕОПРЕДЕЛЕНО)";*/
			//Запрос.УстановитьПараметр("ТаблицаПлатежей", ТаблицаПлатежей);
			//Запрос.УстановитьПараметр("Ссылка", Ссылка);
			//Запрос.Выполнить();
			if(true/*глЗначениеПеременной("ИспользоватьБлокировкуДанных")*/)
			{
				/*СтруктураПараметровБлокировки = Новый Структура(
			"ИмяТаблицы, ИсточникДанных, ИмяВременнойТаблицы", 
			"ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов", МенеджерВремТаблиц, "ТаблицаПлатежей");*/
				/*СтруктураЗначенийБлокировки   = Новый Структура(
			"ВидРасчетовСКонтрагентом, Организация, УпрУчет", 
			ВидРасчетовСКонтрагентом, СтруктураШапкиДокумента.Организация, СтруктураШапкиДокумента.ОтражатьВУправленческомУчете);*/
				/*СтруктураИсточникаДанных      = Новый Структура(
			"ДоговорКонтрагента, Сделка, ДокументРасчетовСКонтрагентом", 
			"ДоговорКонтрагента", "Сделка", "ДокументРасчетовСКонтрагентом");*/
				//ОбщегоНазначения.УстановитьУправляемуюБлокировку(СтруктураПараметровБлокировки, СтруктураЗначенийБлокировки, СтруктураИсточникаДанных, Отказ, Заголовок);
			}
			/*Запрос.Текст = 
	"ВЫБРАТЬ
	|	ВзаиморасчетыПоДокументамОстатки.ДоговорКонтрагента,
	|	ВзаиморасчетыПоДокументамОстатки.Сделка,
	|	ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом,
	|	ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток * &ЗнакОстатка КАК СуммаВзаиморасчетов,
	|	ВзаиморасчетыПоДокументамОстатки.СуммаРеглОстаток * &ЗнакОстатка КАК СуммаРегл
	|ИЗ
	|	РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(, 
	|		Организация = &Организация
	|			И ВидРасчетовСКонтрагентом = &ВидРасчетовСКонтрагентом
	|			И УпрУчет = &УпрУчет
	|			И (ДоговорКонтрагента, Сделка, ДокументРасчетовСКонтрагентом) В (ВЫБРАТЬ ДоговорКонтрагента, Сделка, ДокументРасчетовСКонтрагентом ИЗ ТаблицаПлатежей)) КАК ВзаиморасчетыПоДокументамОстатки
	|ГДЕ
	|	ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток * &ЗнакОстатка > 0
	|
	|ДЛЯ ИЗМЕНЕНИЯ
	|	РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки";*/
			//Запрос.УстановитьПараметр("Организация", СтруктураШапкиДокумента.Организация);
			//Запрос.УстановитьПараметр("ВидРасчетовСКонтрагентом", ВидРасчетовСКонтрагентом);
			//Запрос.УстановитьПараметр("УпрУчет", УпрУчет);
			//Запрос.УстановитьПараметр("ЗнакОстатка",ЗнакОстатка);
			//ОстаткиПоРасчетам = Запрос.Выполнить().Выгрузить();
			//ДвиженияРегистраОперативныхРасчетов = Движения.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов;
			if(true/*СтруктураШапкиДокумента.Свойство("РежимПроведения")*/)
			{
				//РежимПроведения = СтруктураШапкиДокумента.РежимПроведения;
			}
			//ЗапрещатьПревышениеОстатков = РежимПроведения = РежимПроведенияДокумента.Оперативный;
		}
		// Движения документов поступления и реализации по регистру оперативных расчетов по документам
		//
		// Параметры
		//  СтруктураШапкиДокумента		- <Структура> – Структура шапки документа
		//  БазоваяТаблицаЗадолженности	– <ТаблицаЗначений> –  Таблица значений с информацией о задолженности по документу
		//  ТаблицаРасчетовПоДокументам	– <ТаблицаЗначений> –  Таблица значений с информацией о зачитываемых авансах
		//  ВидРасчетовПоОперации		- <ПеречислениеСсылка.ВидыРасчетовСКонтрагентами>
		//  ВидДвиженияРасчетов			- <ПеречислениеСсылка.ВидыДвиженийБухгалтерии>
		//	ДоговорКонтрагента			- <СправочникСсылка.ДоговорыКонтрагентов> - необязательный параметр.
		//									Для документов, отражающих движения по нескольким договорам
		//  Движения 					- <Коллекция движений или структура с соответствующими свойствами>
		//								– Движения документа по регистрам (в т.ч. по регистру оперативных взаиморасчетов)
		//  Отказ						- <Булево> – признак ошибки при проведения для остановки проведения документа
		//  Заголовок					- <Строка> – Представление заголовка документа для использования при формировании сообщения об ошибках
		//

		public void ОтражениеЗадолженностиВРегистреОперативныхРасчетовПоДокументам(/*СтруктураШапкиДокумента, ТаблицаВзаиморасчетов, ВидРасчетовСКонтрагентом, ВидДвижения, Движения, Отказ, Заголовок*/)
		{
			//ВестиПоДокументамРасчетовСКонтрагентом = СтруктураШапкиДокумента.ВестиПоДокументамРасчетовСКонтрагентом;
			if(true/*(НЕ ВестиПоДокументамРасчетовСКонтрагентом)
		ИЛИ (ТаблицаВзаиморасчетов.Количество() = 0)*/)
			{
			}
			//Ссылка             = ПолучитьДокументРасчетовСКонтрагентом(СтруктураШапкиДокумента);
			//ДатаДвижений       = СтруктураШапкиДокумента.Дата;
			//Организация        = СтруктураШапкиДокумента.Организация;
			//Контрагент         = СтруктураШапкиДокумента.Контрагент;
			//ДоговорКонтрагента = СтруктураШапкиДокумента.ДоговорКонтрагента;
			/*//Признак отражения в УУ берем из ссылки, т.к. в СтруктураШапкиДокумента при отложенном проведении этот признак равен ЛОЖЬ
*/
			//УпрУчет            = СтруктураШапкиДокумента.Ссылка.ОтражатьВУправленческомУчете;
			//ЗнакОстатка        = ?(ВидДвижения = ВидДвиженияНакопления.Приход, -1, 1);
			//ЭтоВозврат = СтруктураШапкиДокумента.Свойство("ЭтоВозврат") И СтруктураШапкиДокумента.ЭтоВозврат;
			//Множитель = ?(ЭтоВозврат, -1, 1);
			//ЗнакОстатка = ЗнакОстатка * Множитель;
			//НетСделкиВТаблице = ТаблицаВзаиморасчетов.Колонки.Найти("Сделка") = Неопределено;
			if(true/*НетСделкиВТаблице*/)
			{
				/*ТаблицаВзаиморасчетов.Колонки.Добавить("Сделка", Новый ОписаниеТипов("ДокументСсылка.ЗаказПокупателя, ДокументСсылка.ЗаказПоставщику, 
			|ДокументСсылка.СчетНаОплатуПокупателю, ДокументСсылка.СчетНаОплатуПоставщика, Неопределено"), "Сделка");*/
			}
			/*// Определение состояния расчетов по документам
*/
			//Запрос = Новый Запрос;
			//МенеджерВремТаблиц = Новый МенеджерВременныхТаблиц;
			//Запрос.МенеджерВременныхТаблиц = МенеджерВремТаблиц;
			/*Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	Таб.Сделка,
	|	Таб.ДокументРасчетовСКонтрагентом
	|ПОМЕСТИТЬ ТаблицаВзаиморасчетов
	|ИЗ
	|	&ТаблицаВзаиморасчетов КАК Таб
	|ГДЕ 
	|	НЕ (Таб.ДокументРасчетовСКонтрагентом = &Ссылка)";*/
			//Запрос.УстановитьПараметр("ТаблицаВзаиморасчетов", ТаблицаВзаиморасчетов);
			//Запрос.УстановитьПараметр("Ссылка", Ссылка);
			//Запрос.Выполнить();
			if(true/*глЗначениеПеременной("ИспользоватьБлокировкуДанных")*/)
			{
				/*СтруктураПараметровБлокировки = Новый Структура(
			"ИмяТаблицы, ИсточникДанных, ИмяВременнойТаблицы", 
			"ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов", МенеджерВремТаблиц, "ТаблицаВзаиморасчетов");*/
				/*СтруктураЗначенийБлокировки   = Новый Структура(
			"ВидРасчетовСКонтрагентом, Организация, ДоговорКонтрагента, УпрУчет", 
			ВидРасчетовСКонтрагентом, СтруктураШапкиДокумента.Организация, СтруктураШапкиДокумента.ДоговорКонтрагента, СтруктураШапкиДокумента.ОтражатьВУправленческомУчете);*/
				/*СтруктураИсточникаДанных      = Новый Структура(
			"Сделка, ДокументРасчетовСКонтрагентом", 
			"Сделка", "ДокументРасчетовСКонтрагентом");*/
				//ОбщегоНазначения.УстановитьУправляемуюБлокировку(СтруктураПараметровБлокировки, СтруктураЗначенийБлокировки, СтруктураИсточникаДанных, Отказ, Заголовок);
			}
			/*ТекстЗапроса = 
	"ВЫБРАТЬ
	|	ВзаиморасчетыПоДокументамОстатки.Организация,
	|	ВзаиморасчетыПоДокументамОстатки.Контрагент,
	|	ВзаиморасчетыПоДокументамОстатки.ДоговорКонтрагента,
	|	ВзаиморасчетыПоДокументамОстатки.Сделка,
	|	ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом,
	|	ВзаиморасчетыПоДокументамОстатки.ВидРасчетовСКонтрагентом,
	|	ВзаиморасчетыПоДокументамОстатки.УпрУчет,
	|	ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток * &ЗнакОстатка КАК СуммаВзаиморасчетов,
	|	ВзаиморасчетыПоДокументамОстатки.СуммаРеглОстаток * &ЗнакОстатка КАК СуммаРегл
	|ИЗ
	|	РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(
	|		, 
	|		Организация = &Организация
	|			И Контрагент = &Контрагент
	|			И ДоговорКонтрагента = &ДоговорКонтрагента
	|			И ВидРасчетовСКонтрагентом = &ВидРасчетовСКонтрагентом
	|			И УпрУчет = &УпрУчет
	|			И (Сделка, ДокументРасчетовСКонтрагентом) В (ВЫБРАТЬ Сделка, ДокументРасчетовСКонтрагентом ИЗ ТаблицаВзаиморасчетов)) КАК ВзаиморасчетыПоДокументамОстатки
	|ГДЕ
	|	ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток * &ЗнакОстатка > 0
	|
	|ДЛЯ ИЗМЕНЕНИЯ
	|	РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки";*/
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.УстановитьПараметр("Организация", Организация);
			//Запрос.УстановитьПараметр("Контрагент", Контрагент);
			//Запрос.УстановитьПараметр("ДоговорКонтрагента", ДоговорКонтрагента);
			//Запрос.УстановитьПараметр("ВидРасчетовСКонтрагентом", ВидРасчетовСКонтрагентом);
			//Запрос.УстановитьПараметр("УпрУчет", УпрУчет);
			//Запрос.УстановитьПараметр("ЗнакОстатка",ЗнакОстатка);
			//ОстаткиПоРасчетам = Запрос.Выполнить().Выгрузить();
			//НаборЗаписейВзаиморасчетыПоДокументам = Движения.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов;
			//ТаблицаДвижений = НаборЗаписейВзаиморасчетыПоДокументам.Выгрузить();
			//ТаблицаДвижений.Очистить();
			if(true/*СтруктураШапкиДокумента.Свойство("РежимПроведения")*/)
			{
				//РежимПроведения = СтруктураШапкиДокумента.РежимПроведения;
			}
			//ЗапрещатьПревышениеОстатков   = РежимПроведения = РежимПроведенияДокумента.Оперативный;
			//ВзаиморасчетыВВалютеРеглУчета = СтруктураШапкиДокумента.ВалютаВзаиморасчетов = СтруктураШапкиДокумента.ВалютаРегламентированногоУчета;
			//ДелатьДвиженияПоСуммеРегл     = СтруктураШапкиДокумента.ОтражатьВРегламентированномУчете И НЕ ВзаиморасчетыВВалютеРеглУчета;
			//НаборЗаписейВзаиморасчетыПоДокументам.мТаблицаДвижений = ТаблицаДвижений;
			//НаборЗаписейВзаиморасчетыПоДокументам.мПериод = ДатаДвижений;
			if(true/*Не Отказ*/)
			{
				//ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(НаборЗаписейВзаиморасчетыПоДокументам, ВидДвижения);
			}
		}
		/////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ РАБОТЫ С РЕЗЕРВАМИ ПО СОМНИТЕЛЬНЫМ ДОЛГАМ
		// Функция рассчитывает суммы начисления и списания резервов и коэффициент нормирования для НУ
		// Предусмотрено два режима работы:
		// для формирования проводок - формируются все суммы резервов, а коэффициент нормирования для НУ берется в готовом виде
		//                             вызывается из регламентной операции "Расчет резервов по сомнительным долгам"
		// для расчета коэффициента нормирования - определяются суммы для начисления резервов по НУ за месяц и с начала года и рассчитывается коэффициент нормирования
		//                             вызывается из регламентной операции "Расчет долей списания косвенных расходов"
		//
		// Параметры:
		//	СтруктураПараметров - структура, содержащая ключи:
		//		Организация
		//		Дата
		//		УчетнаяПолитика
		//	РежимФормированияПроводок - если Истина, то работа в режиме "формирования проводок"
		//								если Ложь, то работа в режиме "расчета коэффициента"
		//	НормаРасходовПоВыручке - сумма выручки с начала года, используемой для нормирования
		//	ИспользуетсяДляВводаОстатков - если Истина, то вызывается для заполнения документа
		//									ВводНачальныхОстатковПоВзаиморасчетам, в этом случае
		//									нормирование не используется.
		//

		public object ПровестиРасчетРезервовПоСомнительнымДолгам(/*СтруктураПараметров, РежимФормированияПроводок, НормаРасходовПоВыручке, ИспользуетсяДляВводаОстатков*/)
		{
			//ФормироватьБУ = СтруктураПараметров.УчетнаяПолитика.ФормироватьРезервыПоСомнительнымДолгамБУ;
			//ФормироватьНУ = СтруктураПараметров.УчетнаяПолитика.ФормироватьРезервыПоСомнительнымДолгамНУ;
			if(true/*НЕ ФормироватьБУ и НЕ ФормироватьНУ*/)
			{
			}
			if(true/*ИспользуетсяДляВводаОстатков*/)
			{
				//ДатаКонцаМесяца =   КонецДня(СтруктураПараметров.Дата);
			}
			//ДатаКонцаМесяцаГраница = Новый Граница(ДатаКонцаМесяца, ВидГраницы.Включая);
			//ДатаНачалаГода = НачалоГода(СтруктураПараметров.Дата);
			//ДатаКонцаПрошлогоМесяца = ?(Месяц(СтруктураПараметров.Дата) = 1, ДатаНачалаГода, КонецМесяца(НачалоМесяца(СтруктураПараметров.Дата) -1));
			//Счет62 = ПланыСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками;
			//Счет76 = ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПокупателямиИЗаказчиками;
			//Счет62_2 = ПланыСчетов.Хозрасчетный.РасчетыПоАвансамПолученным;
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("Организация",       СтруктураПараметров.Организация);
			//Запрос.УстановитьПараметр("КонецМесяца",       ДатаКонцаМесяца);
			//Запрос.УстановитьПараметр("ДатаКонцаМесяцаГраница",ДатаКонцаМесяцаГраница);
			//МассивРасчетов = Новый Массив;
			//МассивРасчетов.Добавить(Счет62);
			//МассивРасчетов.Добавить(Счет76);
			//Запрос.УстановитьПараметр("СчетаРасчетов",МассивРасчетов);
			//Запрос.УстановитьПараметр("Счет62_2", Счет62_2);
			//Запрос.УстановитьПараметр("ОбщийСрокОплаты", СтруктураПараметров.УчетнаяПолитика.СрокОплатыПокупателейДляРезервовПоСомнительнымДолгам);
			//Запрос.УстановитьПараметр("ФормироватьБУ",   ФормироватьБУ);
			//Запрос.УстановитьПараметр("ФормироватьНУ",   ФормироватьНУ);
			//Запрос.УстановитьПараметр("ИспользуетсяДляВводаОстатков", ИспользуетсяДляВводаОстатков);
			/*// Получение списка дебиторской задолженности
*/
			/*Запрос.Текст = 
	"ВЫБРАТЬ
	|	Хозрасчетный.Ссылка КАК Счет
	|ПОМЕСТИТЬ ВТ_СчетаРасчетов
	|ИЗ
	|	ПланСчетов.Хозрасчетный КАК Хозрасчетный
	|ГДЕ
	|	Хозрасчетный.Ссылка В ИЕРАРХИИ(&СчетаРасчетов)
	|	И НЕ Хозрасчетный.Ссылка В ИЕРАРХИИ (&Счет62_2)
	|	И НЕ Хозрасчетный.Валютный
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	Счет
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ТаблицаВсехРасчетов.СчетОплаты КАК Счет,
	|	ТаблицаВсехРасчетов.Контрагент КАК Контрагент,
	|	ТаблицаВсехРасчетов.ДоговорКонтрагента КАК Договор,
	|	ТаблицаВсехРасчетов.Документ КАК ДокументДолга,
	|	ЕСТЬNULL(-ТаблицаВсехРасчетов.СуммаРегОстаток, 0) КАК ДолгБУ,
	|	ЕСТЬNULL(-ТаблицаВсехРасчетов.СуммаРегОстаток, 0) КАК ДолгНУ
	|ПОМЕСТИТЬ ТаблицаВсехРасчетов
	|ИЗ
	|	РегистрНакопления.РасчетыПоРеализацииВУсловныхЕдиницахОрганизации.Остатки(
	|			&ДатаКонцаМесяцаГраница,
	|			Организация = &Организация
	|				И СчетОплаты В
	|					(ВЫБРАТЬ
	|						ВТ_СчетаРасчетов.Счет
	|					ИЗ
	|						ВТ_СчетаРасчетов)
	|				И Документ <> НЕОПРЕДЕЛЕНО) КАК ТаблицаВсехРасчетов
	|ГДЕ
	|	ТаблицаВсехРасчетов.СуммаРегОстаток < 0
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	Счет,
	|	Контрагент,
	|	Договор,
	|	ДокументДолга
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ТаблицаВсехРасчетов.Счет КАК Счет,
	|	ТаблицаВсехРасчетов.Контрагент КАК Контрагент,
	|	ТаблицаВсехРасчетов.Договор КАК Договор,
	|	ТаблицаВсехРасчетов.ДокументДолга КАК ДокументДолга
	|ПОМЕСТИТЬ ТаблицаВсехРасчетовИДолгов
	|ИЗ
	|	ТаблицаВсехРасчетов КАК ТаблицаВсехРасчетов
	|
	|ОБЪЕДИНИТЬ
	|
	|ВЫБРАТЬ
	|	ТаблицаДанныхРасчетов.СчетУчетаРасчетовСКонтрагентом,
	|	ТаблицаДанныхРасчетов.Контрагент,
	|	ТаблицаДанныхРасчетов.ДоговорКонтрагента,
	|	ТаблицаДанныхРасчетов.Документ
	|ИЗ
	|	РегистрНакопления.РезервыПоСомнительнымДолгам.Остатки(&ДатаКонцаМесяцаГраница, Организация = &Организация) КАК ТаблицаДанныхРасчетов
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	Счет,
	|	Контрагент,
	|	Договор,
	|	ДокументДолга
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ТаблицаВсехРасчетовИДолгов.Счет,
	|	ТаблицаВсехРасчетовИДолгов.Контрагент КАК Контрагент,
	|	ТаблицаВсехРасчетовИДолгов.Договор КАК Договор,
	|	ТаблицаВсехРасчетовИДолгов.ДокументДолга КАК ДокументДолга,
	|	ВЫБОР
	|		КОГДА &ФормироватьБУ
	|			ТОГДА ТаблицаВсехРасчетов.ДолгБУ
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК ДолгБу,
	|	ВЫБОР
	|		КОГДА &ФормироватьНУ
	|			ТОГДА ТаблицаВсехРасчетов.ДолгНУ
	|		ИНАЧЕ 0
	|	КОНЕЦ КАК ДолгНУ,
	|	ВЫБОР
	|		КОГДА ВЫРАЗИТЬ(ТаблицаВсехРасчетовИДолгов.Договор КАК Справочник.ДоговорыКонтрагентов).УстановленСрокОплатыДляРезервовПоСомнительнымДолгам
	|			ТОГДА ВЫРАЗИТЬ(ТаблицаВсехРасчетовИДолгов.Договор КАК Справочник.ДоговорыКонтрагентов).СрокОплатыДляРезервовПоСомнительнымДолгам
	|		ИНАЧЕ &ОбщийСрокОплаты
	|	КОНЕЦ КАК СрокОплаты
	|ПОМЕСТИТЬ Таблица
	|ИЗ
	|	ТаблицаВсехРасчетовИДолгов КАК ТаблицаВсехРасчетовИДолгов
	|		ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаВсехРасчетов КАК ТаблицаВсехРасчетов
	|		ПО ТаблицаВсехРасчетовИДолгов.Счет = ТаблицаВсехРасчетов.Счет
	|			И ТаблицаВсехРасчетовИДолгов.Контрагент = ТаблицаВсехРасчетов.Контрагент
	|			И ТаблицаВсехРасчетовИДолгов.Договор = ТаблицаВсехРасчетов.Договор
	|			И ТаблицаВсехРасчетовИДолгов.ДокументДолга = ТаблицаВсехРасчетов.ДокументДолга
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	Таблица.Счет,
	|	Таблица.Контрагент,
	|	Таблица.Договор,
	|	Таблица.ДокументДолга,
	|	СУММА(Таблица.ДолгБу) КАК ДолгБУ,
	|	СУММА(Таблица.ДолгНУ) КАК ДолгНУ,
	|	МИНИМУМ(Таблица.СрокОплаты) КАК СрокОплаты
	|ИЗ
	|	Таблица КАК Таблица
	|
	|СГРУППИРОВАТЬ ПО
	|	Таблица.Контрагент,
	|	Таблица.Договор,
	|	Таблица.ДокументДолга,
	|	Таблица.Счет";*/
			//Результат = Запрос.Выполнить();
			if(true/*Результат.Пустой()*/)
			{
			}
			//ТаблицаДолгов = Результат.Выгрузить();
			//ТаблицаДолгов.Колонки.Добавить("ДатаДолга", Новый ОписаниеТипов("Дата"));
			//ТаблицаДолгов.Колонки.Добавить("СрокДолга", Новый ОписаниеТипов("Число"));
			//ТаблицаДолгов.Колонки.Добавить("Коэффициент", Новый ОписаниеТипов("Число"));
			//ТекущийМесяц = КонецМесяца(СтруктураПараметров.Дата);
			/*// Добавление к списку дебиторской задолженности дат возникновения сомнительной задолженности и корректировка сумм БУ и НУ по установкам в учетной политике
*/
			//ДобавитьДатуДокументаКРезультатуЗапроса(ТаблицаДолгов,"ДокументДолга","ДатаДолга");
			//ЗапросВр = Новый Запрос;
			//ЗапросВр.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
			//ЗапросВр.УстановитьПараметр("ТаблицаДолгов",  ТаблицаДолгов);
			/*ЗапросВр.Текст = 
	"ВЫБРАТЬ
	|	ТаблицаДолгов.Счет КАК Счет,
	|	ТаблицаДолгов.Контрагент КАК Контрагент,
	|	ТаблицаДолгов.Договор КАК Договор,
	|	ТаблицаДолгов.ДокументДолга КАК ДокументДолга,
	|	ТаблицаДолгов.ДатаДолга КАК ДатаДолга,
	|	ТаблицаДолгов.СрокДолга КАК СрокДолга,
	|	ТаблицаДолгов.ДолгБУ КАК ДолгБУ,
	|	ТаблицаДолгов.ДолгНУ КАК ДолгНУ,
	|	ТаблицаДолгов.Коэффициент КАК Коэффициент
	|ПОМЕСТИТЬ ТаблицаДолгов
	|ИЗ
	|	&ТаблицаДолгов КАК ТаблицаДолгов
	|ГДЕ
	|	ТаблицаДолгов.СрокДолга >= 45";*/
			//ЗапросВр.Выполнить();
			/*// Определение сомнительной задолженности и расчет резервов
*/
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("Организация",       СтруктураПараметров.Организация);
			//Запрос.УстановитьПараметр("КонецМесяца",       ДатаКонцаМесяца);
			//Запрос.УстановитьПараметр("ДатаКонцаМесяцаГраница",ДатаКонцаМесяцаГраница);
			//Запрос.УстановитьПараметр("КонецПрошлогоМесяца",ДатаКонцаПрошлогоМесяца);
			//Запрос.УстановитьПараметр("ДатаНачалаГода",    ДатаНачалаГода);
			//Запрос.УстановитьПараметр("ИспользуетсяДляВводаОстатков", ИспользуетсяДляВводаОстатков);
			//Запрос.УстановитьПараметр("ДатаОстатков",      ?(РежимФормированияПроводок, ДатаКонцаМесяца, ДатаКонцаПрошлогоМесяца));
			//Запрос.УстановитьПараметр("ФормироватьБУ",     ФормироватьБУ);
			//Запрос.УстановитьПараметр("ФормироватьНУ",     ФормироватьНУ);
			//Запрос.МенеджерВременныхТаблиц = ЗапросВр.МенеджерВременныхТаблиц;
			/*Запрос.Текст =  "ВЫБРАТЬ
	                |	ТаблицаДолгов.Счет,
	                |	ТаблицаДолгов.Контрагент КАК Контрагент,
	                |	ТаблицаДолгов.Договор КАК Договор,
	                |	ТаблицаДолгов.ДокументДолга КАК ДокументДолга,
	                |	ТаблицаДолгов.ДатаДолга,
	                |	ТаблицаДолгов.СрокДолга,
	                |	ТаблицаДолгов.ДолгБУ КАК НачисленоБУ,
	                |	ТаблицаДолгов.ДолгНУ КАК НачисленоНУ,
	                |	ВЫБОР
	                |		КОГДА &ФормироватьБУ
	                |			ТОГДА ТаблицаДолгов.ДолгБУ
	                |		ИНАЧЕ ТаблицаДолгов.ДолгНУ
	                |	КОНЕЦ КАК СуммаЗадолженности,
	                |	ТаблицаДолгов.Коэффициент
	                |ПОМЕСТИТЬ ТаблицаСомнительныхДолгов
	                |ИЗ
	                |	ТаблицаДолгов КАК ТаблицаДолгов
	                |
	                |ИНДЕКСИРОВАТЬ ПО
	                |	Контрагент,
	                |	Договор,
	                |	ДокументДолга
	                |;
	                |
	                |////////////////////////////////////////////////////////////////////////////////
	                |ВЫБРАТЬ
	                |	РезервыПоСомнительнымДолгамОстаткиИОбороты.Контрагент КАК Контрагент,
	                |	РезервыПоСомнительнымДолгамОстаткиИОбороты.ДоговорКонтрагента КАК Договор,
	                |	РезервыПоСомнительнымДолгамОстаткиИОбороты.Документ КАК ДокументДолга,
	                |	ВЫБОР
	                |		КОГДА &ФормироватьБУ
	                |			ТОГДА ВЫБОР
	                |					КОГДА &ДатаНачалаГода = &КонецПрошлогоМесяца
	                |						ТОГДА РезервыПоСомнительнымДолгамОстаткиИОбороты.СуммаБУНачальныйОстаток
	                |					ИНАЧЕ РезервыПоСомнительнымДолгамОстаткиИОбороты.СуммаБУКонечныйОстаток
	                |				КОНЕЦ
	                |		ИНАЧЕ 0
	                |	КОНЕЦ КАК НачисленоРанееБУ,
	                |	ВЫБОР
	                |		КОГДА &ФормироватьНУ
	                |			ТОГДА ВЫБОР
	                |					КОГДА &ДатаНачалаГода = &КонецПрошлогоМесяца
	                |						ТОГДА РезервыПоСомнительнымДолгамОстаткиИОбороты.СуммаНУНачальныйОстаток
	                |					ИНАЧЕ РезервыПоСомнительнымДолгамОстаткиИОбороты.СуммаНУКонечныйОстаток
	                |				КОНЕЦ
	                |		ИНАЧЕ 0
	                |	КОНЕЦ КАК НачисленоРанееНУ,
	                |	ВЫБОР
	                |		КОГДА &ФормироватьБУ
	                |			ТОГДА РезервыПоСомнительнымДолгамОстаткиИОбороты.СуммаБУНачальныйОстаток
	                |		ИНАЧЕ 0
	                |	КОНЕЦ КАК ОстатокРезерваБУНаНачалоГода
	                |ПОМЕСТИТЬ ОстаткиРезервов
	                |ИЗ
	                |	РегистрНакопления.РезервыПоСомнительнымДолгам.ОстаткиИОбороты(
	                |			&ДатаНачалаГода,
	                |			&ДатаОстатков,
	                |			,
	                |			,
	                |			Организация = &Организация
	                |				И НЕ &ИспользуетсяДляВводаОстатков) КАК РезервыПоСомнительнымДолгамОстаткиИОбороты
	                |
	                |ИНДЕКСИРОВАТЬ ПО
	                |	Контрагент,
	                |	Договор,
	                |	ДокументДолга
	                |;
	                |
	                |////////////////////////////////////////////////////////////////////////////////
	                |ВЫБРАТЬ
	                |	ТаблицаДанныхРасчетов.Контрагент,
	                |	ТаблицаДанныхРасчетов.ДоговорКонтрагента КАК Договор,
	                |	ТаблицаДанныхРасчетов.Документ КАК ДокументДолга,
	                |	ТаблицаДанныхРасчетов.СуммаБУОстаток КАК ОстатокРезерваБУ,
	                |	ТаблицаДанныхРасчетов.СуммаНУОстаток КАК ОстатокРезерваНУ
	                |ПОМЕСТИТЬ ТаблицаТекущихРезервов
	                |ИЗ
	                |	РегистрНакопления.РезервыПоСомнительнымДолгам.Остатки(&ДатаКонцаМесяцаГраница, Организация = &Организация) КАК ТаблицаДанныхРасчетов
	                |
	                |ИНДЕКСИРОВАТЬ ПО
	                |	ТаблицаДанныхРасчетов.Контрагент,
	                |	Договор,
	                |	ДокументДолга
	                |;
	                |
	                |////////////////////////////////////////////////////////////////////////////////
	                |ВЫБРАТЬ
	                |	ТаблицаСомнительныхДолгов.Счет,
	                |	ТаблицаСомнительныхДолгов.Контрагент,
	                |	ТаблицаСомнительныхДолгов.Договор,
	                |	ТаблицаСомнительныхДолгов.ДокументДолга,
	                |	ТаблицаСомнительныхДолгов.ДатаДолга,
	                |	ТаблицаСомнительныхДолгов.СрокДолга,
	                |	ТаблицаСомнительныхДолгов.СуммаЗадолженности,
	                |	ЕСТЬNULL(ОстаткиРезервов.НачисленоРанееБУ, 0) КАК НачисленоРанееБУ,
	                |	ЕСТЬNULL(ОстаткиРезервов.НачисленоРанееНУ, 0) КАК НачисленоРанееНУ,
	                |	ЕСТЬNULL(ОстаткиРезервов.ОстатокРезерваБУНаНачалоГода, 0) КАК ОстатокРезерваБУНаНачалоГода,
	                |	ЕСТЬNULL(ТаблицаСомнительныхДолгов.НачисленоБУ, 0) КАК НачисленоБУ,
	                |	ЕСТЬNULL(ТаблицаСомнительныхДолгов.НачисленоНУ, 0) КАК НачисленоНУ,
	                |	ЕСТЬNULL(ТаблицаТекущихРезервов.ОстатокРезерваБУ, 0) КАК ОстатокРезерваБУ,
	                |	ЕСТЬNULL(ТаблицаТекущихРезервов.ОстатокРезерваНУ, 0) КАК ОстатокРезерваНУ,
	                |	ТаблицаСомнительныхДолгов.Коэффициент
	                |ПОМЕСТИТЬ ТаблицаСомнительныхДолговИОстатковРезервов
	                |ИЗ
	                |	ТаблицаСомнительныхДолгов КАК ТаблицаСомнительныхДолгов
	                |		ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиРезервов КАК ОстаткиРезервов
	                |		ПО ТаблицаСомнительныхДолгов.Контрагент = ОстаткиРезервов.Контрагент
	                |			И ТаблицаСомнительныхДолгов.Договор = ОстаткиРезервов.Договор
	                |			И ТаблицаСомнительныхДолгов.ДокументДолга = ОстаткиРезервов.ДокументДолга
	                |		ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаТекущихРезервов КАК ТаблицаТекущихРезервов
	                |		ПО ТаблицаСомнительныхДолгов.Контрагент = ТаблицаТекущихРезервов.Контрагент
	                |			И ТаблицаСомнительныхДолгов.Договор = ТаблицаТекущихРезервов.Договор
	                |			И ТаблицаСомнительныхДолгов.ДокументДолга = ТаблицаТекущихРезервов.ДокументДолга
	                |;
	                |
	                |////////////////////////////////////////////////////////////////////////////////
	                |ВЫБРАТЬ
	                |	ТаблицаСомнительныхДолговИОстатковРезервов.Счет,
	                |	ТаблицаСомнительныхДолговИОстатковРезервов.Контрагент,
	                |	ТаблицаСомнительныхДолговИОстатковРезервов.Договор,
	                |	ТаблицаСомнительныхДолговИОстатковРезервов.ДокументДолга,
	                |	ТаблицаСомнительныхДолговИОстатковРезервов.ДатаДолга,
	                |	ТаблицаСомнительныхДолговИОстатковРезервов.СрокДолга,
	                |	ТаблицаСомнительныхДолговИОстатковРезервов.СуммаЗадолженности,
	                |	ТаблицаСомнительныхДолговИОстатковРезервов.НачисленоРанееБУ,
	                |	ТаблицаСомнительныхДолговИОстатковРезервов.НачисленоРанееНУ,
	                |	ВЫБОР
	                |		КОГДА (ВЫРАЗИТЬ(ТаблицаСомнительныхДолговИОстатковРезервов.НачисленоБУ * ТаблицаСомнительныхДолговИОстатковРезервов.Коэффициент КАК ЧИСЛО(15, 2))) > ТаблицаСомнительныхДолговИОстатковРезервов.НачисленоРанееБУ
	                |			ТОГДА (ВЫРАЗИТЬ(ТаблицаСомнительныхДолговИОстатковРезервов.НачисленоБУ * ТаблицаСомнительныхДолговИОстатковРезервов.Коэффициент КАК ЧИСЛО(15, 2))) - ТаблицаСомнительныхДолговИОстатковРезервов.НачисленоРанееБУ
	                |		ИНАЧЕ 0
	                |	КОНЕЦ КАК НачисленоБУ,
	                |	ВЫРАЗИТЬ(ТаблицаСомнительныхДолговИОстатковРезервов.НачисленоНУ * ТаблицаСомнительныхДолговИОстатковРезервов.Коэффициент КАК ЧИСЛО(15, 2)) КАК НачисленоСНачалаГодаНУ,
	                |	ВЫБОР
	                |		КОГДА ТаблицаСомнительныхДолговИОстатковРезервов.НачисленоРанееБУ > (ВЫРАЗИТЬ(ТаблицаСомнительныхДолговИОстатковРезервов.НачисленоБУ * ТаблицаСомнительныхДолговИОстатковРезервов.Коэффициент КАК ЧИСЛО(15, 2)))
	                |			ТОГДА ТаблицаСомнительныхДолговИОстатковРезервов.НачисленоРанееБУ - (ВЫРАЗИТЬ(ТаблицаСомнительныхДолговИОстатковРезервов.НачисленоБУ * ТаблицаСомнительныхДолговИОстатковРезервов.Коэффициент КАК ЧИСЛО(15, 2)))
	                |		ИНАЧЕ 0
	                |	КОНЕЦ КАК ВосстановленоБУ,
	                |	ВЫБОР
	                |		КОГДА МЕСЯЦ(&КонецМесяца) = 12
	                |				И ТаблицаСомнительныхДолговИОстатковРезервов.ОстатокРезерваБУНаНачалоГода > 0
	                |				И ТаблицаСомнительныхДолговИОстатковРезервов.ОстатокРезерваБУ > 0
	                |			ТОГДА ТаблицаСомнительныхДолговИОстатковРезервов.ОстатокРезерваБУ
	                |		ИНАЧЕ 0
	                |	КОНЕЦ КАК ПрисоединеноБУ
	                |ПОМЕСТИТЬ Таблица
	                |ИЗ
	                |	ТаблицаСомнительныхДолговИОстатковРезервов КАК ТаблицаСомнительныхДолговИОстатковРезервов
	                |;
	                |
	                |////////////////////////////////////////////////////////////////////////////////
	                |ВЫБРАТЬ
	                |	Таблица.Счет КАК Счет,
	                |	Таблица.Контрагент КАК Контрагент,
	                |	Таблица.Договор КАК Договор,
	                |	Таблица.ДокументДолга КАК ДокументДолга,
	                |	МИНИМУМ(Таблица.ДатаДолга) КАК ДатаДолга,
	                |	МИНИМУМ(Таблица.СрокДолга) КАК СрокДолга,
	                |	СУММА(Таблица.СуммаЗадолженности) КАК СуммаЗадолженности,
	                |	СУММА(Таблица.НачисленоРанееБУ) КАК НачисленоРанееБУ,
	                |	СУММА(Таблица.НачисленоРанееНУ) КАК НачисленоРанееНУ,
	                |	СУММА(Таблица.НачисленоБУ) КАК НачисленоБУ,
	                |	СУММА(Таблица.ВосстановленоБУ) КАК ВосстановленоБУ,
	                |	СУММА(Таблица.ПрисоединеноБУ) КАК ПрисоединеноБУ,
	                |	СУММА(Таблица.НачисленоСНачалаГодаНУ) КАК НачисленоСНачалаГодаНУ
	                |ИЗ
	                |	Таблица КАК Таблица
	                |
	                |СГРУППИРОВАТЬ ПО
	                |	Таблица.Счет,
	                |	Таблица.Контрагент,
	                |	Таблица.Договор,
	                |	Таблица.ДокументДолга
	                |
	                |УПОРЯДОЧИТЬ ПО
	                |	Счет,
	                |	Контрагент,
	                |	Договор,
	                |	ДокументДолга";*/
			//Результат = Запрос.Выполнить();
			//ТаблицаРезервов = Результат.Выгрузить();
			//ТаблицаРезервов.Колонки.Добавить("НачисленоНУ", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2));
			//ТаблицаРезервов.Колонки.Добавить("ВосстановленоНУ", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2));
			if(true/*ИспользуетсяДляВводаОстатков*/)
			{
				//ТаблицаРезервов.ЗагрузитьКолонку(ТаблицаРезервов.ВыгрузитьКолонку("НачисленоБУ"), "НачисленоНУ");
			}
			/*// Расчет коэффициент для нормирования по выручке для НУ
*/
			//МожноНачислить = НормаРасходовПоВыручке;
			if(true/*ТаблицаРезервов.Итог("НачисленоСНачалаГодаНУ") = 0*/)
			{
				//Коэффициент = 0;
			}
			//Коэффициент = ?(Коэффициент > 1, 1, Коэффициент);
			if(true/*РежимФормированияПроводок*/)
			{
				/*// Расчет сумм резервов для НУ
*/
				if(true/*СтруктураПараметров.УчетнаяПолитика.ФормироватьРезервыПоСомнительнымДолгамНУ*/)
				{
					//ИтогНачисленоНУ = Окр(ТаблицаРезервов.Итог("НачисленоСНачалаГодаНУ") * Коэффициент, 2);
					//УчетНДС.РаспределитьСуммуПоСтолбцу(ТаблицаРезервов.ВыгрузитьКолонку("НачисленоСНачалаГодаНУ"), ИтогНачисленоНУ, ТаблицаРезервов, "НачисленоСНачалаГодаНУ");
				}
			}
			return null;
		}

		public object ДобавитьДатуДокументаКРезультатуЗапроса(/*Результат,КолонкаДокумента,КолонкаСДатой*/)
		{
			//КэшПоТипам = Новый Соответствие;
			if(true/*КэшПоТипам.Количество()=0*/)
			{
			}
			//Запрос = новый запрос;
			//Выборка = Запрос.Выполнить().Выбрать();
			while(true/*Выборка.Следующий()*/)
			{
				//ПараметрыОтбора = Новый Структура;
				//ПараметрыОтбора.Вставить(КолонкаДокумента, Выборка.Ссылка);
				//НайденныеСтроки = Результат.НайтиСтроки(ПараметрыОтбора);
			}
			return null;
		}
		// ДобавитьДатуДокументаКРезультатуЗапроса()
	}
}
